Novel composite parts, methods and apparatus for manufacturing the same

ABSTRACT

Described is a method of forming a textile perform for a mold having a complex curvature.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application claims benefit of priority to U.S. Provisional Patent Application No. 61/409,610 filed Nov. 3, 2010 which is incorporated by reference in its entirety.

BACKGROUND

1. Field of the Invention

The present invention relates to methods of producing reinforcement fabrics for polymer-matrix composite (PMC) materials, especially PMC materials with high volume fractions of structural fibres produced by impregnation of the reinforcement with a curable or otherwise solidified polymer.

2. Related Art

Existing textile are unable to produce flat reinforcement fabrics that are thick, net-shape, drapable onto doubly-curved surfaces, and made from continuous yarns oriented in a way to promote coverage, resin flow and/or structural stiffness.

SUMMARY

According to one broad aspect, the present invention provides a method comprising the following step: (a) forming a textile preform for a mold having a complex curvature, wherein the preform is a single piece of textile material, and wherein the preform has an optimised pattern for one or more parameters.

BRIEF DESCRIPTION OF THE DRAWINGS

The accompanying drawings, which are incorporated herein and constitute part of this specification, illustrate exemplary embodiments of the invention, and, together with the general description given above and the detailed description given below, serve to explain the features of the invention.

FIG. 1 The RTM Process [1].

FIG. 2 The VARTM Process [2].

FIG. 3 shows the Quickstep™ process [5].

FIG. 4 shows a jet engine nose cone preform [6].

FIG. 5 shows the presence of in-plane shear on a draped textile.

FIG. 6 shows a surface draped by a kinematic method [10].

FIG. 7 shows an example of a unit cell used in FE simulation [11].

FIG. 8 shows an elementary pattern used in FE simulation [12].

FIG. 9 shows the mapping of elementary patterns to finite elements [12].

FIG. 10 shows a hybrid kinematic energy drape [13].

FIG. 11 shows a variable-length textile reinforcement.

FIG. 12 shows deformation modes of a single fibre.

FIG. 13 shows a representative wavy fibre element [16].

FIG. 14 shows a section of bent fibre.

FIG. 15 shows fibre waviness and misalignment within a yarn [24].

FIG. 16 shows deformation modes of a single yarn.

FIG. 17 shows a schematic of Bending Evaluation System for Fabric and Yarn (BES-FY) [28].

FIG. 18 shows a quarter yarn for second moment of inertia calculations.

FIG. 19 shows an uncompacted textile [31].

FIG. 20 shows a compacted textile [31].

FIG. 21 shows a cross-section of an uncompacted textile [31].

FIG. 22 shows a cross-section of a compacted textile [31].

FIG. 23 shows intra-yarn shear [33].

FIG. 24 shows an intra-yarn shear displacement profile [32].

FIG. 25 shows various 2D weaves [34].

FIG. 26 shows a warp knit without structural yarns inserted [34].

FIG. 27 shows a warp knit with structural yarns inserted [34].

FIG. 28 shows a chain stitch warp knit [35].

FIG. 29 shows a tricot stitch warp knit [35].

FIG. 30 shows a plain weft knit [36].

FIG. 31 shows different stitching patterns [37].

FIG. 32 shows a braided textile [38].

FIG. 33 shows deformation modes C1 and C2 of a textile [39].

FIG. 34 shows deformation modes C3, C4 and C5 of a Textile.

FIG. 35 shows a 3D Weaving Process [43].

FIG. 36 shows 3D braided preforms [43].

FIG. 37 shows in-plane shear of a textile [34].

FIG. 38 shows the effect of textile architecture on in-plane shear behaviour [45].

FIG. 39 shows a picture frame test [46].

FIG. 40 shows a bias extension test [46].

FIG. 41 shows shear force as a function of shear Angle [46].

FIG. 42 shows deformation by in-plane shearing of a textile Reinforcement [48].

FIG. 43 shows an off-axis stresses and strains [50].

FIG. 44 shows Q₁₁ Versus Fibre Angle [50].

FIG. 45 shows nesting of woven textiles [52].

FIG. 46 shows lap joints within a preform [53].

FIG. 47 shows a symmetric step joint [54].

FIG. 48 shows an early drape simulation over a sphere [9].

FIG. 49 shows a determination of warp and weft crossover points [57].

FIG. 50 shows the effect of constrained yarns on draping simulation.

FIG. 51 shows the effect of start location on draping simulation.

FIG. 52 shows a draping software graphical user interface (GUI).

FIG. 53 shows an angle between vectors normal to neighbouring elements.

FIG. 54 shows an algorithm to determine element normal vectors.

FIG. 55 shows a solid model as loaded in draping software.

FIG. 56 shows a start point coordinate dialog.

FIG. 57 shows 2D vectors on an element projection.

FIG. 58 shows multiple elements intersecting a selection vector.

FIG. 59 shows different orientations of geodesics at a start point.

FIG. 60 shows the determination of an initial geodesic direction vector.

FIG. 61 shows intersections between geodesic and element edges for a first element.

FIG. 62 shows an algorithm for m value comparison.

FIG. 63 shows intersection between geodesic and element edge extension.

FIG. 64 shows intersections between geodesic and element edges for subsequent elements.

FIG. 65 shows a change of geodesic direction vector.

FIG. 66 shows an algorithm for geodesic generation (Part 1).

FIG. 67 shows an algorithm for geodesic generation (Part 2: Geodesic Loop).

FIG. 68 shows a crossover location array.

FIG. 69 shows arrays used to store yarn spacings.

FIG. 70 shows yarn crossover points on geodesics.

FIG. 71 shows locations of yarn crossover points.

FIG. 72 shows a geodesic crossover location when l_(m)=l_(t).

FIG. 73 shows a geodesic crossover location when l_(m)<l_(t).

FIG. 74 shows a geodesic crossover location when l_(m)>l_(t).

FIG. 75 shows an algorithm to mesh geodesics.

FIG. 76 shows the location of mesh quadrants.

FIG. 77 shows the geometric relations for meshing.

FIG. 78 shows a 3D representation of geometric relations for meshing.

FIG. 79 shows a circle of intersection of two spheres.

FIG. 80 shows determining the centre and radius of a circle of intersection.

FIG. 81 shows a definition of brick space.

FIG. 82 shows the inclusion of different elements in brick space.

FIG. 83 shows an intersection of a circle plane with an element plane.

FIG. 84 shows lines of intersection which do and do not intersect an element.

FIG. 85 shows a crossover location not within the bounds of an element.

FIG. 86 shows one intersection between a line of intersection and element edges

FIG. 87 shows an intersection of a circle of intersection and a line of intersection.

FIG. 88 shows possible intersections between a sphere and a line.

FIG. 89 shows convex and concave drape elements.

FIG. 90 shows the geometry for a convexity check.

FIG. 91 shows limit conditions for a convexity check.

FIG. 92 shows angles in constant-length and variable-length textiles.

FIG. 93 shows the determination of angles β₂ and β₄.

FIG. 94 shows the setting yarn spacings of yarn crossover that could not be draped.

FIG. 95 shows an order for finding yarn crossovers.

FIG. 96 shows an algorithm for meshing between geodesics (Part 1).

FIG. 97 shows an algorithm for meshing between geodesics (Part 2: Brick Space Loop).

FIG. 98 shows a simulated mesh displayed on a model.

FIG. 99 shows a colour map of an in-plane shear angle.

FIG. 100 shows a colour map of a fibre volume fraction.

FIG. 101 shows colour-coded yarn spacings for variable-length textiles.

FIG. 102 shows a model draped with multiple meshes.

FIG. 103 shows a drape simulation limited by a patch.

FIG. 104 shows the creation of a patch within a software simulation.

FIG. 105 shows a gravity effect on a mesh.

FIG. 106 shows a draping simulation with magnets.

FIG. 107 shows a variable-length textile draped on a flat surface.

FIG. 108 shows a yarn spacing of a textile.

FIG. 109 shows a manual optimisation using a draping software according to one embodiment of the present invention.

FIG. 110 shows an algorithm for a software optimisation of a variable-length textile.

FIG. 111 shows an optimisation performed without maximum and minimum yarn spacings.

FIG. 112 shows a similarity check for neighbouring yarn spacings.

FIG. 113 shows the effect of a minimum similarity parameter on the results of an optimisation.

FIG. 114 shows optimising for surface area.

FIG. 115 shows an optimising for in-plane shear angle.

FIG. 116 shows an optimising for the product of angle and area.

FIG. 117 shows a parameter to maximise based on an allowable range for v_(f).

FIG. 118 shows optimising for fibre orientation.

FIG. 119 shows a non-optimised textile and initial section of a progressive optimisation.

FIG. 120 shows a layer of yarn spacings eligible for modification in a progressive optimisation.

FIG. 121 shows an end result of a progressive optimisation.

FIG. 122 shows a hemisphere model used for a software validation.

FIG. 123 shows a hemisphere mould used for software validation.

FIG. 124 shows a comparison of drape and simulation (Hemisphere).

FIG. 125 shows points of reference on a hemisphere used for calibrating.

FIG. 126 shows a laboratory drape on the hemisphere with start point and geodesics [71].

FIG. 127 shows a one quadrant validation test on a hemisphere.

FIG. 128 shows a four quadrant validation test on a Hemisphere [71].

FIG. 129 shows a four quadrant validation test on an aerospace mould (View 1).

FIG. 130 shows a four quadrant validation test on an aerospace mould (View 2).

FIG. 131 shows a visualisation of the difference in size between a model and a mould.

FIG. 132 shows a non-optimised textile draped on a hemisphere.

FIG. 133 shows a progressive optimisation for a hemisphere according to one embodiment of the present invention.

FIG. 134 shows a manual optimisation for a hemisphere according to one embodiment of the present invention.

FIG. 135 shows an optimised textile for a hemisphere as it appears when laid flat according to one embodiment of the present invention.

FIG. 136 shows a pattern used to manufacture a hemisphere textile according to one embodiment of the present invention.

FIG. 137 show pins used for the manufacture of optimised textiles according to one embodiment of the present invention.

FIG. 138 shows a manufactured textile for the hemisphere optimised for surface area according to one embodiment of the present invention.

FIG. 139 shows a result of a progressive optimisation on an aerospace mould according to one embodiment of the present invention.

FIG. 140 shows a manual optimisation A of an Aerospace Mould according to one embodiment of the present invention.

FIG. 141 shows a manual optimisation B of an Aerospace mould according to one embodiment of the present invention.

FIG. 142 shows an optimised textile for an aerospace mould as it appears when laid flat according to one embodiment of the present invention.

FIG. 143 shows a pattern used to manufacture an aerospace textile according to one embodiment of the present invention.

FIG. 144 shows a manufactured textile for an aerospace mould optimised for surface area according to one embodiment of the present invention.

FIG. 145 shows a pattern used to manufacture an aerospace mould textile (Textile A) according to one embodiment of the present invention.

FIG. 146 shows a pattern used to manufacture an aerospace mould textile (Textile B) according to one embodiment of the present invention.

FIG. 147 shows a manufactured textile for the optimisation of fibre orientation (Textile A).

FIG. 148 is an image of a manufactured textile for the optimisation of fibre orientation (Textile B) according to one embodiment of the present invention.

FIG. 149 is a screenshot showing a geometric model of a hemisphere imported into optimisation software according to one embodiment of the present invention.

FIG. 150 is a screenshot showing a geometric model of a hemisphere imported into optimisation software according to one embodiment of the present invention.

FIG. 151 is a screenshot showing initial draping paths for the geometric model of FIGS. 149 and 150.

FIG. 152 is a screenshot showing predicted draped paths of yarns for a non-optimised fabric for the geometric model of FIGS. 149 and 150.

FIG. 153 is a screenshot showing the shear angle for the non-optimised fabric of FIG. 152.

FIG. 154 is a screenshot showing the predicted draped paths of yarns for an optimised fabric according to one embodiment of the present invention.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS Nomenclature

In the description that follows, the following Roman letter units have the following meanings:

-   -   A Component in the Equation of a Plane     -   Ap Surface Area of a Drape Element     -   a Amplitude of Curved Fibre m     -   B Component in the Equation of a Plane     -   bmax Upper Threshold of the Brick Space     -   bmin Lower Threshold of the Brick Space     -   bound1 First Point of Intersection Between the Line of         Intersection and an Element Edge     -   bound2 Second Point of Intersection Between the Line of         Intersection and an Element Edge     -   C Component in the Equation of a Plane     -   vector c_(n) Vector Normal to the Pane of the Circle of         Intersection     -   c_(c) Centre of the Circle of Intersection     -   c_(d) Component in the Equation of the Plane of the Circle of         Intersection     -   c_(r) Radius of the Circle of Intersection     -   c₁ Constant Used to Define the Equation of a Line of         Intersection Between Two Planes     -   c₂ Constant Used to Define the Equation of a Line of         Intersection Between Two Planes     -   D Component in the Equation of a Plane     -   dc Distance Between Centroid of Fibre and Yarn mm     -   d_(b) Distance Between Possible Solution and Bound     -   d₁ Directional Vector 1 of Element     -   d₂ Directional Vector 2 of Element     -   E Young's Modulus GPa     -   E_(x) Young's Modulus Along the Fibre Direction GPa     -   E_(y) Young's Modulus Across the Fibre Direction GPa     -   E_(s) Shear Modulus GPa     -   vector e_(n) Vector Normal to the Pane of an Element Within the         Brick Space     -   e_(d) Component in the Equation of the Plane for an Element         Within the Brick Space     -   fishnet[a][b] Array Containing the Yarn Crossover Points     -   vector geod1 Initial Direction Vector of Geodesic 1     -   vector geod1 ₁ Direction Vector of Geodesic 1 Before Element         Edge     -   vector geod1 ₂ Direction Vector of Geodesic 1 After Element Edge     -   vector geod2 Initial Direction Vector of Geodesic 2     -   geod1 _(s) Start Point of Vector geod1     -   geod1 _(e) End Point of Vector geod1     -   geo[i][j] Array Containing the Geodesic Intersection Points     -   I 2nd Moment of Inertia m⁴     -   I_(d) 2nd Moment of Inertia of a Dry Yarn mm⁴     -   I_(y) 2nd Moment of Inertia of a Yarn mm⁴     -   k Variable Used in Solving for Two Lines     -   L Length of Period of a Curved Fibre m     -   l Length Between Adjacent Geodesic Intersection Points     -   l_(t) Length Between Yarn Crossover and Next Intersection Point     -   l_(t-1) Value of lt for the Previous Iteration     -   l_(d) Deformed Length m     -   l_(o) Undeformed Length m     -   l_(m) Yarn Spacing     -   l_(ma) Yarn Spacing in the a direction     -   l_(mb) Yarn Spacing in the b direction     -   M Bending Moment N·m     -   m_(i) Variable Used in Solving for Two Lines     -   m_(xy) Variable Used in Solving for Two Lines     -   m_(yz) Variable Used in Solving for Two Lines     -   m_(zx) Variable Used in Solving for Two Lines     -   n₁ Node 1 of Current Element     -   n₂ Node 2 of Current Element     -   n₃ Node 3 of Current Element     -   n_(a) First Node in Common Element Edge     -   n_(b) Second Node in Common Element Edge     -   n_(b) Node Not Part of Common Element Edge     -   N_(f) Number of Fibres Within a Yarn     -   Ni Number of Iterations Needed Before Checking for Steady State         Condition     -   N_(m) Number of Yarn Crossovers Present Within the Mesh     -   P_(avg) Average Value of the Parameter to Maximise     -   P_(i) Current Value of the Parameter to Maximise     -   p_(A) Previous Yarn Crossover Point Along a     -   p_(a) Point Used to Determine Subsequent Geodesic Direction         Vector     -   p_(B) Previous Yarn Crossover Point Along b     -   p_(b) Point Used to Determine Subsequent Geodesic Direction         Vector     -   p_(d) Point Used to Determine Subsequent Geodesic Direction         Vector     -   p_(e) Point of Intersection Between Geodesic and Element Edge     -   p_(i) Point of Intersection Between Geodesic and Element Edge     -   p_(l) Point on the Line of Intersection Between Two Planes     -   p_(O) Previous Yarn Crossover Point Along a b     -   Q_(ij) Off-Axis Stiffness Components GPa     -   Q_(xx), Q_(xy), Q_(yy), Q_(ss) On-Axis Stiffness Components GPa     -   q Variable Used in Solving for Two Lines     -   r Variable Used in Solving for Two Lines     -   r_(a) Major Radius of an Ellipse mm     -   r_(b) Minor Radius of an Ellipse mm     -   r_(c) Radius of Curvature of Bent Fibre m     -   r_(f) Radius of Bent Fibre m     -   s Start Point of Drape     -   ss Steady State Value     -   ss_(c) Steady State Criteria     -   t_(r) Distance Between Bound and c_(c)     -   vector t_(n1) Vector Normal to Triangle 1     -   vector t_(n2) Vector Normal to Triangle 2     -   u Parametric Variable for the Line of Intersection Between Two         Planes     -   vector v Displacement Vector of a Sheared Yarn m     -   v_(i) Variable Used in Solving for Two Lines     -   vector v_(ni) Vector Normal to the Plane of Element i     -   vector v_(n) Vector Normal to the Plane of the Current Element     -   v_(f) Fibre Volume Fraction %     -   w_(i) Variable Used in Solving for Two Lines

In the description that follows, the following Greek letter units have the following meanings:

-   -   α₁, α₂ Angles Between Perpendicular Yarns for Constant-Length         Textiles rad     -   β Ratio of Length of Period to Amplitude of a Fibre     -   β₁, β₂, β₃, β₄ Angles Between Perpendicular Yarns for         Variable-Length Textiles rad     -   β_(shear) In-Plane Shear Angle of a Drape Element     -   ε Strain     -   ε_(m) Threshold Used to Determine Closeness Between Two         Components     -   ε_(x) Strain Along the Fibre Direction     -   ε_(y) Strain Across the Fibre Direction     -   e_(s) Shear Strain     -   ε₁, ε₂, ε₆ Off-Axis Strain Components     -   θ_(c) Angle Between the Planes of Two Triangles rad     -   θ_(e) Angle Between Neighbouring Elements rad     -   θ_(f) Fibre Orientation rad     -   θ_(g) Angle of Rotation for Geodesics rad     -   θ_(min) User-Defined Minimum In-Plane Shear Angle rad     -   μ Parametric Variable used in the Intersection of a Sphere and a         Line     -   v_(x) Major Poisson's Ratio     -   v_(y) Minor Poisson's Ratio     -   ρ Radius of Curvature m     -   σ_(x) Stress Along the Fibre Direction MPa     -   σ_(y) Stress Across the Fibre Direction MPa     -   σ_(z) Shear Stress MPa     -   σ₁, σ₂, σ₆ Off-Axis Stress Components MPa     -   φ₁ First Angle Between Yarn and Specified Fibre Angle rad     -   φ₂ Second Angle Between Yarn and Specified Fibre Angle rad     -   φ Value used as parameter to maximise based φ1 on and φ2 rad

DEFINITIONS

Where the definition of terms departs from the commonly used meaning of the term, applicant intends to utilize the definitions provided below, unless specifically indicated.

For purposes of the present invention, a value or property is “based” on a particular value, property, the satisfaction of a condition, or other factor, if that value is derived by performing a mathematical calculation or logical decision using that value, property or other factor.

For purposes of the present invention, the term “complex surface” refers to any surface which is doubly curved, meaning that the surface curves along two perpendicular axes known as the principle curvature directions, at any given point

DESCRIPTION

Existing reinforcement fabrics are generally pieces cut out from continuous roll of thin flat fabric that draped individually onto one another, and sometimes adhered to one another using spray adhesives or mesh adhesives or other types of binders in a process generally known as preforming Rolls of thin, flat fabrics have been obtained by one of the following process: weaving of continuous yarns (plain weaves, twill weaves, satin weaves and/or any other pattern of woven fabrics), knitting of continuous yarns (any type of warp-knitting and/or weft-knitting), braiding of continuous yarns (any type of biaxial, triaxial or tubular braiding), stitching of parallel continuous yarns using a secondary thread, or any other process where continuous yarns are combined into thin flat reinforcements.

In one embodiment, the present invention provides a method for manufacturing thick net-shape continuous-fibre textile preforms from carbon yarn. These performs may be bent and draped over complex moulds, thereby reducing labour intensive activities such as trimming, taping, layering fabric. In one embodiment, the present invention expands on existing stitching-based technologies, allowing a user to tailor preforms to specific parts and loading cases.

In one embodiment, the present invention provides a method of designing and manufacturing directional thick, net-shape, drapable reinforcement preforms, the method comprising the steps of: designing yarn patterns so that a flat preform can be produced, to be draped in a simple manual operation onto a mould defined in 3D in a subsequent step upon PMC manufacturing, using straightforward instructions pertaining to the first point of contact and orientation of the preform as defined as the design stage; laying yarns on a specifically-designed pattern tool to give them their orientation, using equipment designed as part of the preforming technology according to one embodiment of the present invention; the design of the tool is defined directly from the yarn patterns; and assembling the yarns with a secondary thread stitched along a pattern that enables draping and high in-plane shear deformations, using equipment designed as part of the preforming technology according to one embodiment of the present invention. In one embodiment the design of the stitching patterns is defined directly from the yarn patterns.

In one embodiment, the present invention provides a method of optimizing yarn paths for enhanced coverage of the mould, by using software that tests different yarn path curvatures based on a Monte-Carlo optimisation method until a set of curvatures that maximises or minimises a parameter of interest or a combination of parameters of interest is identified

In one embodiment, the present invention provides a method of manufacturing the fabrics.

The group of manufacturing methods known as Liquid Composite Moulding (LCM) is becoming the industry standard for Polymer Matrix Composite (PMC) production. These processes are versatile and cost-effective, but they are extremely dependant on the availability of textile preforms offering good quality and consistency, realised through well-controlled fibre volume fractions, fibre orientations and thicknesses as well as the absence of defects such as out-of-plane deformations and inter-fibre gaps. Preform quality is itself largely determined by the draping operation, which may be modeled to better inform the design of PMC components. In one embodiment, the present invention provides a method of simulating the draping of textiles onto model surfaces using the kinematic draping model.

In one embodiment, the present invention provides a novel textile architecture where yarn spacings of a textile may vary across the textile. These variable-length textiles can be custom tailored for specific PMC applications, offering advantages over conventional constant-lengths textiles such as a larger surface area covered by a single piece of textile, lower values of in-plane shear, and controlled fibre orientations. The variable-length textiles can be optimised manually or using algorithms based on Monte Carlo methods which are implemented in the software.

The draping software was validated by comparing laboratory trials with drape simulations and results from generic demonstrators and an industrial component; several optimisation results are presented, demonstrating the advantages associated with variable-length textiles over conventional, constant-length textiles.

The term composite identifies a class of engineered materials typically made from two constituent materials characterised by different physical and mechanical properties. The constituent materials can be polymers, metals or ceramics. Once combined, they offer performance advantages beyond those of the constituents. In one embodiment, the present invention provides polymer matrix composites (PMCs) made from carbon or glass fibres, encased in a polymer resin. Described below are aspects of manufacturing PMCs where the reinforcement is a textile. These PMCs are widely used in the aerospace, automotive, nautical and recreational goods industries. Historically, the very first PMCs were manufactured using fibres that were pre-impregnated with partially cured, cooled resin in semi-products called prepregs. Due to the high costs associated with this material form, the industry is moving toward liquid moulding processes.

The basic principle of liquid moulding processes for PMC production consists in creating a dry bed of structural fibres, known as a preform, the volume and shape of which correspond generally to the volume and shape of the PMC part to be made. The operation of creating this bed of dry fibres is commonly known as preforming Once the dry fibres are in position within a mould, the preform is infused with a curable liquid polymer or resin and the fibres are impregnated in an operation called resin infusion. Many different liquid moulding processes exist including resin transfer moulding (RTM), RTM-light, vacuum assisted resin transfer 2 moulding (VARTM), resin film infusion (RFI), Seeman Composites Resin Infusion Molding Process (SCRIMP™) and Quickstep™ [1-4]. The RTM process uses a mould made of at least two stiff parts, forming a closed cavity which has the shape and dimensions of the PMC component to be made. During part manufacture one half of the mould is covered or draped with pieces of dry textile reinforcement, introduced along a prescribed sequence of orientations and layering. Alternatively, the preforming can be carried out on a separate tool, with the preform transported in the actual mould afterwards. Once the preform is ready the mould is closed and resin is injected through carefully chosen injection ports; the thickness of the gap separating the mould parts ensures predictable component thickness. The orientation of the fibres and volume fraction throughout the component are largely determined when the preform is made, so precision in preform construction is of paramount importance. RTM-light is very similar to RTM with the exception that it uses one rigid mould half and one thin shell mould half made of composite material. This thin and relatively flexible mould half limits the resin injection pressures that can be used; resin flow in RTM-light is often driven by vacuum. FIG. 1 shows the RTM Process [1].

VARTM is a further evolution of RTM where the top mould is replaced by a series of breather cloths, a perforated film and an air-tight membrane which compresses the preform when a vacuum is drawn for resin infusion. Similarly to RTM, the preform construction largely determines how the fibres are oriented in the PMC component, while the compaction and vacuum level will have an effect on the final fibre volume fraction and PMC component thickness. RFI is very similar to VARTM with the difference of having a film of semi-cured resin incorporated in the layup, which will melt when heated and infuse into the textile reinforcement, primarily through the thickness. The resin film replaces the liquid resin which is drawn in by vacuum in the VARTM process. The patented SCRIMP™ process is also very similar to the VARTM process with the addition of a patented flow medium which assists the flow of resin [3]. While the process does offer advantages in terms of resin infusion over VARTM, it is still largely dependent on the preform construction in order to produce high quality PMC components. FIG. 2 shows the VARTM Process [2].

The Quickstep™ process resembles both VARTM and RTM; while the preform is held within a flexible membrane much like in VARTM, a surrounding liquid can exert positive pressure on the preform much like the mould halves in RTM. However, unlike both RTM and VARTM, the curing process is activated by heat transferred via a heat transfer fluid (HTF) [4]; RTM may depend on heat transferred from the mould. Again, a high quality PMC component can only be manufactured by using a high quality preform. FIG. 3 shows the Quickstep™ Process [5].

The performance, integrity and reproducibility of PMC parts manufactured using any of the above liquid moulding processes are highly dependent on the quality of the preform. High preform quality refers primarily to the absence, or the presence in a limited amount, of defects such as inter-yarn gaps and wrinkles in the textile reinforcement, and also to the consistency of the volume fraction v_(f) at different scales throughout the preform. The edges of a high quality preform should be devoid of fraying. Finally, preform quality refers to whether preform thickness and fibre orientation are as specified. The thickness and fibre orientation directly impact the mass and structural performance of the finished PMC component while any gaps and wrinkles may lead to major manufacturing problems as well as premature failure. The v_(f) is defined as the percentage of the total volume of the PMC part which is occupied by the reinforcement. Typical values of v_(f) range from 55% to 70% depending on the reinforcement and manufacturing process used. A PMC part with a low of vf will benefit fully from the mechanical properties of the reinforcement, but will be heavier due to the excess resin. Conversely, a PMC part with a v_(f) which is too high may not be consolidated due to a lack of resin, resulting in voids and very poor structural properties. The fibre orientation is the direction along which fibres impart their strength and stiffness to the PMC part. Fibre orientations which diverge from design specifications or are out-of-plane will yield a PMC component lacking the desired design stiffness and/or strength. Lastly, the thickness of the finished PMC component is nearly identical to the thickness of the compacted preform; thus it is imperative that the preform thickness corresponds to the desired thickness of the finished PMC component. FIG. 4 shows an engine nose cone preform [6].

Textile reinforcements used in creating preforms generally come as rolled stock, which needs to be cut, draped and compacted upon preform manufacturing. Draping involves placing layered pieces of dry textile reinforcement onto the mould surface while compacting involves applying pressure, either positively or through vacuum, to the dry fibre bed in order to reduce its thickness and ensure a higher fibre volume fraction. The draping operation should be repeated to attain the desired preform thickness, while the compaction operation may be done in between draping operations or only once at the end. Both the draping and compaction of the textile reinforcement deform the textile. Possible deformation modes for the textile include fibre stretching, fibre straightening, interfibre slip, tow buckling and in-plane shear amongst others [7]. Whilst these deformations enable the draping of high v_(f) preforms, they can also lead to defects and low preform quality if badly applied or controlled. Deformation modes will be further detail below.

In-plane shear is especially important to the preforming process as it is the deformation mode that enables flat sheets of textile reinforcements to conform to doubly-curved surfaces. As such, it accounts for the vast majority of preform deformation [7]. The grid traced on the woven reinforcement in FIG. 5 demonstrates in-plane-shear in a draped textile; squares in the grid deform into diamonds as the textile is sheared. In-plane shear is introduced during the draping operation; it is limitations on in-plane shear that dictate the surface area that can be covered by a textile reinforcement as it is draped. All textile reinforcements are limited in the amount of in-plane shear deformation that they can withstand before deforming out-of-plane through wrinkling and buckling. Out-of-plane deformations of dry reinforcements before infusion are particularly damaging to PMC parts because they may result in major difficulties for resin injection or major defects in the part upon infusion. In the RTM process, out-of-plane deformations could result in the inability to close the mould due to areas of increased thickness. The most critical consequence of out-of-plane deformation is the near complete loss of structural properties due to fibres which are no longer aligned with applied loads, therefore little or no load is transferred to the fibres. To effectively avoid the above defects and component deficiencies, it is important to drape the textile correctly, which can be made possible with accurate predictive simulations of the draping operation.

The design of preforms and parts, as well as their manufacturing, can be engineered by simulating the draping operation using software to detect areas of high in-plane shear, or of low fibre volume fraction, and the presence of potential out-of-plane deformation zones. The idea of simulating the draping of a 2D textile reinforcement onto a double curvature surface defined in 3D has been pursued and methods have been elaborated towards this purpose, including kinematic algorithms, finite element (FE) simulations and hybrid kinematic energy methods.

The kinematic or geometric [8, 9] method is essentially a mapping algorithm which predicts the path of yarns on the curved surface from simple geometric assumptions. The assumption made is that the textile reinforcement acts much like a fishnet; a square mesh made of inextensible segments which correspond to the centrelines of the textile's yarns, running in two directions, which are usually orthogonal. The yarns may rotate relative to one another, but yarn stretching and slipping is not permitted. The fishnet may only deform by the rotation of segments around the yarn crossovers. The kinematic method is dependent on the creation of two orthogonal geodesics which cross each other and define the global shape of the fishnet. A draped fishnet can be seen in FIG. 6 where the segments have rotated about each other to enable the simulated textile to conform to the surface; the geodesics can be seen in bold on the same figure.

It is also possible to simulate the draping of textile reinforcements using finite elements. Different methods have been established, including a simplified unit cell method which uses 1D bar elements as shear and tow elements [11]. The tow elements of the unit cell represent the yarns of the textile while the added shear elements represent the resistance to shearing of the textile, which makes it possible to find a minimum strain-energy solution for the textile. The draping is simulated by finding the configuration in which the total strain-energy of the simulated textile is minimal. The undeformed unit cell used for this particular FE simulation can be seen below in FIG. 7.

Alternatively, FE simulations can be performed using an elementary pattern as seen in FIG. 8 [12]. The elementary pattern represents a crossover of perpendicular yarns before deformation, which is repeated in order to create an isoparametric bilinear four-node shell element. Each node in the element has three degrees of freedom to account for the three components of the node's displacement. The directions of the yarns in the elementary pattern correspond to the reference coordinates of the element (ξ₁ and ξ₂), as seen in FIG. 9. Such modelling can be used for simulating draping in a punch and die, where the punch and die are of the desired preform shape. Non-linear kinematics are used in order to calculate the deformation energy for each element, which should be minimised in order to determine the correct configuration.

The hybrid kinematic energy method operates similarly to the kinematic method by mapping the textile to a pin-jointed mesh similar to a fishnet. The segments may rotate relative to each other in order for the mesh to conform to the model surface. However, instead of solving for geometric constraints only, the hybrid kinematic energy method solves for minimal shear deformation energy [13]. Unlike the purely kinematic method, this method does not rely on initially determined geodesics that extend to the boundaries of the surface to cover, even before coverage is actually started. Instead these basic lines are determined as coverage progresses, allowing the simulated textile to deform more freely. The direction of the fibres and the shear deformation of each the fishnet's segments is defined by identifying the configuration in which the deformation energy is minimal. Additionally, the magnitude of the resistance to shear can be defined differently depending on the direction of the shear; this gives the method the ability to simulate a wider variety of textiles, including textiles which have a tendency to shear in one direction with more ease than in the other direction. This can be seen in FIG. 10.

Simulation software can accurately predict and display how a textile reinforcement will deform when draped over a 3D surface. These predictions are used for better informing the design of preforms used in liquid moulding processes. This enables the creation of preforms which have significantly less defects such as out of plane deformations, and allows for the manufacturing of preforms with predictable thicknesses, fibre volume fractions and fibre orientations. However, the extent to which a specific textile can deform in order to conform to a surface is fixed and limited by the locking angle of that textile. Therefore there are limits to the surfaces and shapes that can be draped without defect. In conventional textiles the spacing between yarns and between yarn crossovers are constant for a given textile. In one embodiment, the present invention provides a novel textile architecture where the textile's yarn spacing is allowed to vary across the textile, as seen in FIG. 11. This enables the creation of textile reinforcements which can be optimised for improved drapability onto a specific surface, and/or offer advantages over conventional textile reinforcements such as less in-plane shear or a larger draped area. The optimisation of these variable-length textiles can be done manually or using software. Care should also be taken to ensure that the optimised textiles can be manufactured flat, hence the software probes in-plane shear and v_(f) of the optimised textiles both in the flat state before draping and in the draped state. It is also important to limit the segment length difference from yarn to adjacent yarn, as large differences may lead to high curvature in yarns and impact the feasibility of manufacturing the textile.

Software simulating the draping of 2D textile reinforcements onto arbitrary surfaces has been created using the kinematic method as its basis. The kinematic method was chosen due to its simplicity in using only geometric assumptions. Due to the nature of variable-length textiles, mechanical properties such as in-plane shear stiffness may change across such textiles and more complex simulation methods may need to be developed eventually. The simulation software can accurately predict and display how textile reinforcements, conventional and optimised, will deform when draped over a 3D surface. The 3D surface, textile parameters and start location of the drape are entirely user-defined, allowing for much flexibility in scenarios that may be simulated. Additionally the software may drape areas limited by user-defined patches. Simulation results appear in 3D renderings of the surface, over which the software creates a colour map of the magnitude of shear deformation and fibre volume fraction across the draped surface. The simulation capability, along with the colour maps, enable the designer and manufacturer of PMC parts to see potential defects and make modifications to the design before costly prototypes or trials are done. The software has been validated by comparing simulations with lab trials performed with actual textile reinforcements.

In addition to simulation, the software of one embodiment of the present invention may be used for optimising textile reinforcements, with the aim of better draping a certain surface. The optimisation is accomplished by changing the lengths of the segments within the fishnet. Manual changes can be made via user input within the program, which will then update the simulation in real time to show the effect of the change. The software may also optimise the textile using automated algorithms which operate much like Monte Carlo algorithms, by relying on random changes and evaluating if the change resulted in increasing or decreasing the chosen optimisation parameter or combination of parameters. These algorithms have been tested both qualitatively and quantitatively by comparing non-optimised textiles with optimised textiles. Additionally, textiles optimised both manually and using the software have been made in order to determine how customised textiles behave beyond the simulation.

In one embodiment, the present invention provides a method of improving draping by customised variable-length textile reinforcements. Improvements to the draping operation include less in-plane-shear, a larger surface area that can be draped with one piece of textile, and modified fibre orientation.

The fibre reinforcement is the component that imparts stiffness and strength to PMCs. In liquid moulding processes, textile reinforcements are handled and draped during preforming, before any resin is added. Textile reinforcements can be separated in a series of hierarchical building blocks, the first of which being individual fibres. Aligned fibres are collated into yarns, and yarns are used in creating textile reinforcements. This can be achieved through one of several textile manufacturing processes such as weaving, braiding, knitting or others.

Fibres are long cylindrical filaments which are typically made of materials such as glass or carbon. Most glass and carbon fibres used in PMC components have diameters ranging from 8 μm to 15 μm. There are many different glass and carbon fibres readily available, with different mechanical properties such as E-Glass and S-Glass fibres as well as polyacrylonitrile (PAN) based and pitch based carbon fibres. Indicative values are given in Table 1 below.

TABLE 1 Indicative Properties of Fibres [14, 15] E-Glass S-Glass PAN Carbon Pitch Carbon Young's Modulus (GPa) 72.4 86.2 260-360 415-830 Tensile Strength (MPa) 3448 4585 3650-4820 1720-2400 Density (g/cm³) 2.58 2.48 1.76-1.78 2.00-2.13

During the preforming process the fibres undergo certain deformations. Deformations modes include axial stretching (A1), axial compression (A2) that may induce buckling, bending (A3) which may lead to failure if pursued to small radii, and torsion (A4). The deformation modes can be seen in FIG. 12.

Most fibres used in PMC parts are very stiff, therefore these high modulus fibres need large tensile forces for significant axial deformations to occur. Large tensile forces are not present in typical preforming operations; thus deformation mode A1 is ignored in this work. Additionally, tensile forces will remove any inherent waviness [16] in the fibres, but given the small amplitude of the fibre waviness, the axial deformation that occurs due to fibre straightening can be neglected. For graphite fibres, the ratio β as given by Equation 1 lies between 100-300 where L is the length of period and α is the amplitude of the curved fibre, as seen in FIG. 13 [16].

$\begin{matrix} {\beta = \frac{L}{a}} & (1) \end{matrix}$

Fibres may buckle under compression loading, due to their high modulus and small diameters; in this work buckling will be examined in a forthcoming section on yarns since compression loading and buckling on a single fibre is highly unlikely. Hence deformation mode A2 is not discussed further. Fibres used in PMCs are generally made of materials with a high elastic modulus. It is well established that high modulus materials have high bending rigidities, which may make them less apt to conform to curved surfaces. The relation between the bending moment M, the Young's modulus E, the radius of curvature p and the 2nd moment of inertia I [17] is given by Equation 2 below:

$\begin{matrix} {\frac{1}{\rho} = \frac{M}{EI}} & (2) \end{matrix}$

It is possible to demonstrate that even if individual fibres have high bending rigidities and low strain to failure, the curvature radius needed to strain a fibre beyond its limit is small in comparison to typical radii found on moulds. Strain is defined as the relative increase in length of the fibre as shown in equation (2.3), where ε is the strain, is the deformed length and is the initial length [18] as shown in Equation 3 below:

$\begin{matrix} {ɛ = {\frac{l_{d} - l_{o}}{l_{o}} = {\frac{l_{d}}{l_{o}} - 1}}} & (3) \end{matrix}$

A diagram of a bent fibre is presented below in FIG. 14 where rf is the radius of the fibre and rc is the radius of curvature of the fibre.

Reducing the diagram of FIG. 14 into triangles leads to the ratio shown in Equation 4 below

$\begin{matrix} {\frac{l_{d}}{l_{o}} = {\frac{r_{c} + r_{f}}{r_{c}} = {1 + \frac{r_{c}}{r_{f}}}}} & (4) \end{matrix}$

Inserting Equation 4 into Equation 3 leads to Equation 5 which can be used for calculating the maximum axial strain in the fibre based on the fibre and curvature radii. Using the maximum strain of a very stiff pitch based carbon fibre of 0.42% [19] and a fibre diameter of 10 μm, we can determine the minimum curvature radius of the fibre to be 1.2 mm, for discussion purposes.

$\begin{matrix} {ɛ = \frac{r_{f}}{r_{c}}} & (5) \end{matrix}$

The minimum bending radius of most fibres will be smaller than 1.2 mm due to the fact that most fibres have a maximum strain greater than that of pitch-based carbon fibres. For example, glass fibre can have a maximum strain as high as 4.88% [20]. Due to the very small minimum bending radius of fibres compared to typical radii found in moulds, deformation mode A3 is not at risk of leading to fibre failure in typical preforming operations. Finally, because of the general absence of forces applying torsion moments to individual fibres, torsion A4 on single fibres is not discussed further.

While short unaligned fibres may be used in reinforcements such as random mats and sprayed fibre glass mats, fibres are long, aligned and grouped in bundles called yarns.

Yarns are bundles of aligned continuous fibres comprising a few hundred up to a few tens of thousands fibres; a typical yarn contains 12 000 fibres, ‘12 K’ carbon yarns being prevalent in reinforcement construction. Yarns are mostly used as the basis for the production of textile reinforcements, which are themselves used in preform production. One noticeable exception where yarns are used directly for making PMC parts is the process of filament winding. Yarns can be characterised by a mass per unit length (tex or Denier), a yarn volume fraction, and a cross section area, both of which may change along the length of a yarn. Whilst square packing of fibres in a yarn leads to a v_(f) of 0.785 and hexagonal packing leads to a v_(f) of 0.906[21], uncompacted yarns typically expand to have a yarn volume fraction of about 0.5-0.6 or less because of some degree of fibre waviness, misalignment [22] and intertwining, as seen in FIG. 15 [24]. Due to waviness and misalignment of fibres, contacts between fibres within a yarn are more likely to be pinpoints, while linear contacts are also possible [23].

During preforming, yarns are subjected to many of the same deformation modes as the individual fibres, such as axial stretching (B1), axial compression (B2), bending (B3) and torsion (B4). Additionally, yarns may deform by transverse compression (B5), transverse widening (B6) and intra-yarn shear (B7) as seen in FIG. 16.

Similarly to individual fibres, the axial forces present while preforming will not cause noticeable axial deformations thus deformation mode B1 is ignored. The yarns may buckle when subjected to compressive loads applied along their length. Compressive loads, deformation mode B2, may occur as the textile is forced into a small mould or if in-plane shear reaches its limit Single yarns will very rarely buckle; it is more likely that many yarns may buckle simultaneously resulting in textile buckling. As the yarns are weaved and assembled into a textile, and also during preform manufacturing, forces will act on the yarns that will result in yarn bending, deformation mode B3. Due to the fact that yarns are made of bundles of fibres they behave differently to continuous materials when subject to bending [25]. In addition, equation (2.2) does not hold for non-isotropic materials. It is for this reason that much research has been conducted on the bending and bending stiffness of single yarns. The earliest and simplest methods known as Fabric Assurance by Simple Testing (FAST) [26] and Kawabata Evaluation System for Fabrics (KES-F) [27] come from the clothing textiles industry, where simple tests were devised to determine, among other variables, the bending stiffness of a certain fibre or yarn. More in-depth measurement methods, which use multiple supports rather than the one fixed support of previous methods, may provide better results for the bending rigidity of yarn. One of these methods is the Bending Evaluation System for Fabric and Yarn (BES-FY) [28] illustrated in FIG. 17 [28]. Additionally, some researchers have attempted to use the yarn's geometric and mechanical variables or numerical approaches in order to determine their bending stiffness [29, 30].

It is possible to estimate the bending stiffness of a dry yarn and to compare it to the bending stiffness of an impregnated yarn where the fibres are fixed in cured resin. The bending stiffness is the product of the Young's modulus E and the second moment of inertia I. Considering only the effect of the fibre reinforcement, the Young's modulus for both cases are identical and therefore only the second moments of inertia are compared. Assuming that the individual fibres within the dry yarn can slide past each other with no friction and no entanglements, the second moment of inertia of the yarn is the sum of all the moments of inertia of individual fibres about their individual centroids. Using a fibre diameter of 10 μm and assuming that the fibre sections are perfectly circular, the second moment of inertia can be found in Equation 6 below:

$\begin{matrix} {I_{d} = {N_{f}\frac{\pi \; r_{f}^{4}}{4}}} & (6) \end{matrix}$

where N_(f) is the number of fibres within the yarn, assumed to be 12 000 for this calculation. The second moment of inertia for the dry yarn Id is 5.89 E-06 mm4. In order to determine the second moment of inertia of a cured yarn the shape of the yarn should be determined. An ellipse containing 12 000 fibres was used as a simple representation of the yarn cross-section. The major and minor radii of the ellipse were chosen to produce a yarn that is wider than it is high with a desired cross section area. This area was found by multiplying the number of fibres by the fibre area, and adjusting for the fibre volume fraction. A square packed yarn and a v_(f) of 0.785 were chosen. The chosen values for ra and rb are 0.8 mm and 0.48 mm respectively. The cured yarn behaves as a single solid therefore the second moment of inertia of each fibre should be calculated with respect to the yarn's centroid and not the individual fibre centroids. This is accomplished using the distance between centroids, dc, which varies depending on the fibre's location in the yarn, as seen in FIG. 18.

Equation 7 below is used to determine the second moment of inertia of a cured yarn:

$\begin{matrix} {I_{y} = {{\Sigma \left( \frac{\pi \; r_{r}^{4}}{4} \right)} + {\pi \; r_{f}^{2}d_{c}^{2}}}} & (7) \end{matrix}$

The result of Equation 7 is 5.51 E-02 mm⁴, several orders of magnitude larger than the dry yarn.

During preforming and while the yarns are woven together to create a textile reinforcement, torsional forces are minimal if present at all, therefore deformation mode B4 is not discussed further. Transverse compression or compaction (B5) of the yarn results in the rearrangements of the fibres by lateral spreading (B6) leading to an increase in the v_(f) of the yarn and the reduction of large voids in yarns [31]. Additional compaction, as the v_(f) increases, results in the flattening of wavy yarns and fibres. The yarns deform much like a bending beam supported at contact areas between the yarns [16]. The reorganisation of the yarns triggered by transverse compressive forces is essential in achieving high v_(f) and limiting the presence and size of large fibre-free voids which may become resin rich zones upon infusion. An uncompacted textile (A) in FIGS. 19 and 21 is compared to a compacted textile (B) in FIGS. 20 and 21. The large white areas seen in FIGS. 21 and 22 are resin rich areas, virtually eliminated in the compacted textile.

Finally, intra yarn shear (B7) is a deformation mode which occurs when a textile undergoes in-plane shear. As the angle between the yarns changes, the individual fibres within a yarn slide patch each other [32] effectively shearing the yarn as illustrated in FIG. 23 [33]. The displacement vector v varies as a function of the distance from the centre of the yarn as seen in FIG. 24 [32]. The magnitude of intra-yarn shear is much smaller than inter-yarn shear and has little real effect on the draping of the textile.

When draping the preform, the textile architecture has a large effect on how the textile reinforcement will conform and shear on the surface. Textile reinforcements can be classified in different types according to their manufacturing process and structure, including weaves, knits, braids and stitched textile reinforcements. Such reinforcements are referred to as periodic fabrics and are generally supplied as rolls.

Typical 2D bidirectional weaves comprise of warp yarns which run the length of the weave, and weft yarns which cross and overlap the warp yarns in a manner described by the type of weave. The overlap of yarns creates crimps in the yarns as they are forced to bend around each other. Several different weave types exist including the plain weave, satin weave and twill weaves, shown in FIG. 25 [34]. Different weaves can have different warp and weft spacing defined as the distance between adjacent warp or weft yarns, and can have different linear densities for the warp and weft yarns. It is also possible to form triaxial weaves in applications where the textile reinforcement should be as close to isotropic as possible. Triaxial weaves behave very differently from regular 2D biaxial weaves.

Knits are separated into two distinct types known as warp knits and weft knits. Warp knits are further differentiated by the type of stitch used, including for example the chain stitch and the tricot stitch as seen in FIG. 28 [35] and FIG. 29[35]. Furthermore, the tricot stitch has many different configurations such as 1:1, 2:1 and others; the numbers in the configuration indicating the size of the offset along the warp and weft directions for subsequent stitches along a particular warp yarn. Warp knits are typically used as non-structural threads which interlace around straight load-bearing yarns following a specific pattern based on the type of stitch used. Therefore, in typical carbon fibre reinforcements, the yarns of reinforcement fibres are held together by a light warp knit, which ideally does not pierce through the structural yarns. Warp knits are usually referred to as non-crimp fabrics (NCF) since structural yarns are not interlaced and therefore remain flat. A 1:1 tricot stitch warp knit can be seen FIG. 26 while the same warp knit with structural yarns inserted can be seen in FIG. 17.

Weft knits do not use a stitching thread, but instead rely on structural knitted yarns to interlock in a specific pattern. There is no warp yarn in weft knits as the weft yarns follow a path that aligns them lengthwise as well as crosswise. A weft knit in its most basic form, called the plain weft knit or jersey knit, can be seen in FIG. 30 [36]. Weft knits used as reinforcements typically lead to low v_(f) PMC parts; hence they are only used in special circumstances.

Stitched textiles are much like warp knits in that structural weft and warp yarns do not intertwine and additional non-structural stitched threads hold these yarns in place. The stitched threads usually assemble the layers of textile reinforcement together with a lockstitch, which uses a top thread and bottom thread in the same manner typical of a common sewing machine. Stitched fabrics are also regarded as non-crimp fabrics. Various stitching patterns exist, as seen in FIG. 31 [37].

Braids are made of three or more yarns which intertwine in order to form a continuous tubular structure as seen in FIG. 32 [38]. To create a preform using a braided textile reinforcement, the braided tubular section is usually slipped over a mould or core of the desired shape. The braid will deform and conform to the mould surface but it is not draped as such. Due to the multi-axial nature of braids, deformation modes are different to those found in draped weaves, knits or stitched textiles, hence braided reinforcements.

Textile reinforcements are subject to forces during the preforming which cause them to deform. Deformation modes for 2D textile reinforcements include in-plane shear (C1), intraply yarn slip (C2), textile buckling (C3), bending (C4) and fibre stretching and straightening (C5) as seen in FIG. 33 [39] and FIG. 34.

In-plane shear (C1) is the predominant deformation mode which occurs during preforming. It is characterised by the rotation of yarns about crossover points. In-plane shear is discussed in detail a later section. Intraply yarn slip (C2) is defined as the lateral movement of the yarns at their crossover points. This deformation mode becomes more prevalent as the textile reaches its in-plane shearing limit. Textile buckling (C3) occurs when numerous yarns are subjected to in-plane compressive forces. These yarns then buckle jointly, which impart a wrinkled appearance to the textile. Bending of the textile reinforcement (C4) occurs when the textile reinforcement is draped over single and double curvature surfaces. Whilst the main deformation mode, in-plane shear, occurs when the textile reinforcement is draped over double curvature surfaces, bending can occur over single curvatures. Bending is not a concern for typical 2D textiles in most cases as curvature radii are generally large enough. Textile stretching and straightening (C5) are negligible since the resistance of the textile to in-plane shear is several orders of magnitude smaller than the stiffness of the individual yarns.

Constructing textile preforms for more complex or realistic parts featuring thick sections, integral flanges and/or assemblies of intersecting shells or other similar features can be made easier and more productive using 3D and/or near net shape textiles. Designing and manufacturing such textiles demands thorough consideration of the shape of the part, and eventual alterations to this shape aiming at better accommodating preform construction. Mentions of knitted reinforcements pertaining to net shape composite parts often refer to thick non-structural knits with in-laid load-bearing yarns [40]. These are essentially thicker versions (typically 10-12 layers) of 2D knits or stitched fabrics with in-laid load-bearing yarns, often labeled 2.5D fabrics in the literature. 2.5D textiles generally behave much like 2D textiles with the exception of greater bending rigidity due to the thickness of the textile.

3D weaving extends on the 2D process by integrating superimposed layers of yarns with diverse degrees of z-yarn interlacing [41] as shown in FIG. 35. Z-yarns work as binders [42] or structural yarns within the 3D weave, giving the 3D textile some strength in the z direction and much better interlaminar resistance. 3D weaves are mostly made as thick slivers or wider sheets where machinery is available. As 3D weaves are mostly produced flat, their deformability through bending and shear is important to preforming. Due to the thickness of the 3D weave, bending rigidity is much higher than for 2D weaves requiring analysis of the minimum bend radius achievable while draping.

Applications of braiding as discussed in a previous section typically consist of relatively involved assemblies of simpler tubular or circular 2D braids used as profiles or on cores. On the other hand, 3D braiding enables stronger departures from structural properties typical of thin reinforcements via more extensive interlacing through the thickness of parts in order to create performs made to final shape in more complex processes [44]. FIG. 36 [43] depicts 3D braided preforms in the shape of I-beams and other profiles.

In-plane shear is the most important deformation mode occurring when textile reinforcements are forced to conform to a complex surface. For purposes of the present invention, a complex surface is defined as any surface which is doubly curved, meaning that the surface curves along two perpendicular axes known as the principle curvature directions, at any given point. A surface with only single curvature will only bend the textile reinforcement and not cause any in-plane shear. FIG. 37 [34] shows an undeformed textile on the left and the same textile after in-plane shear has taken place, on the right.

The textile architecture has an impact on the in-plane shear behaviour of a textile reinforcement. Textile reinforcements such as plain weaves tend to deform in an equal manner in both orthogonal bisector directions while twill weaves, satin weaves and many knits will deform more easily in one direction than the other [45]. An example of this difference can be observed in FIG. 38; the left-hand side shows a woven textile which shears equally in both directions while the right-hand side shows a textile which shears predominantly along a certain direction.

A textile's resistance to in-plane shear can be measured in specially designed tests such as the picture frame or bias extension experiments. The picture frame test is a hinged square frame, as shown in FIG. 39 [46], in which a sample of the textile reinforcement is held. Tension from a tensile testing machine deforms the frame from a square into a rhombus, forcing the textile to shear. The force required to shear the textile is recorded as a function of the vertical displacement of the moving mounting of the picture frame. By the use of geometrical relations the shear angle can be determined from the displacement and therefore a measurement of the shear force as function of shear angle is obtained.

The bias extension test consists of applying tension to a rectangular piece of textile reinforcement as shown in FIG. 40. Different zones of the textile will different ways with pure in-plane shear taking place in the section labelled A. The force is measured as a function of the displacement. Since only section A deforms by pure in-plane shear certain mathematical manipulations are required to obtain the force required to shear area A and the shear angle in that zone of the textile [46]. It is also possible to use finite element analysis in order to correlate the relation between shear and shear angle [47].

A graph showing the results of picture frame (symbols) and bias extension (lines) tests is shown in FIG. 41 [46]. In this particular case the undeformed textile is considered to have a shear angle of 0 degrees which progressively increases with in-plane shear. The convention used in the rest of this description considers an undeformed textile to have a shear angle of 90° in relation to the initially perpendicular yarns. As the textile is sheared, the in-plane shear angle decreases.

Textile reinforcements are limited in the amount of in-plane shear that they can withstand. This limit is based on the textile architecture and is measured as the maximum shear angle before out-of-plane deformations occur. As the textile reinforcement is sheared, the yarns eventually contact each other and subsequent deformation will occur in the mode requiring less energy, allowing fibres to buckle out-of-plane. In a plain weave the ratio of the tow size to tow spacing essentially determines at which angle adjacent yarns contact [48]. The maximum angle is called the locking angle and is easily detected as it gives the textile reinforcement a wrinkled appearance [49]. The behaviour of the textile reinforcement when sheared can be seen in FIG. 42.

PMC components are orthotropic, meaning that the mechanical properties are not equal in every direction; therefore the fibre orientation in a PMC component is critical to performance. Mechanical properties such as strength and stiffness are much higher along the fibres, and weaker across the fibres. Taking the simplified case of a unidirectional orthotropic composite loaded on-axis, the in-plane strains are computed by the use of the following matrix equation, i.e., Equation 8 [50]:

$\begin{matrix} {\begin{bmatrix} ɛ_{x} \\ ɛ_{y} \\ ɛ_{s} \end{bmatrix} = {\begin{bmatrix} \frac{1}{E_{x}} & {- \frac{v_{y}}{E_{y}}} & 0 \\ {- \frac{v_{x}}{E_{x}}} & \frac{1}{E_{y}} & 0 \\ 0 & 0 & \frac{1}{E_{s}} \end{bmatrix} \cdot \begin{bmatrix} \sigma_{x} \\ \sigma_{y} \\ \sigma_{s} \end{bmatrix}}} & (8) \end{matrix}$

Values for Young's moduli E_(x) and E_(y), and for Poisson's ratios v_(x) and v_(y) of the composite depend on the fibre used and of the v_(f). Values of material properties are available for most common fibres. Indicative values of Young's moduli and Poisson's ratios for unidirectional composites are given in Table 2 to demonstrate the large differences of magnitude along and across the fibre.

TABLE 2 Indicative Values for Young's Modulus and Poisson's Ratio [50] Material E_(x) (GPa) E_(y) (GPa) v_(x) E_(s) (GPa) Carbon/epoxy T300/5208 181 10.3 0.28 7.17 Carbon/epoxy B(4)/5505 204 18.5 0.23 5.59 Carbon/epoxy AS/3501 138 8.96 0.3 7.1 Glass/epoxy Scotchply 1002 38.6 8.27 0.26 4.14 Aramid/epoxy Kevlar 49 76 5.5 0.34 2.3

In the off-axis unidirectional case where loading axes are not parallel and/or perpendicular to the fibre orientations it is useful to determine the off-axis stiffness of the composite and analyse its off-axis strength. The nomenclature used for on-axis and off-axis components of stress and strain can be seen in FIG. 43 [50].

Stresses in an off-axis composite can be found using a matrix similar to Equation 8 with the exception that coupling exists between each component of stress and each component of strain [50] as shown in Equation 9 below:

$\begin{matrix} {\begin{bmatrix} \sigma_{1} \\ \sigma_{2} \\ \sigma_{3} \end{bmatrix} = {\begin{bmatrix} Q_{11} & Q_{12} & Q_{16} \\ Q_{21} & Q_{22} & Q_{26} \\ Q_{61} & Q_{62} & Q_{66} \end{bmatrix} \cdot \begin{bmatrix} ɛ_{1} \\ ɛ_{2} \\ ɛ_{3} \end{bmatrix}}} & (9) \end{matrix}$

Axial and shear couplings that are specific to orthotropic uniaxial composites loaded off-axis are present. The components of the stiffness matrix Qij, which vary with the angle θ (see FIG. 43) are found using the following matrix equation, i.e., Equation 10:

$\begin{matrix} {\begin{bmatrix} Q_{11} \\ Q_{22} \\ Q_{12} \\ Q_{66} \\ Q_{16} \\ Q_{26} \end{bmatrix} = {\begin{bmatrix} c_{\theta}^{4} & s_{\theta}^{4} & {2\; c_{\theta}^{2}s_{\theta}^{2}} & {4\; c_{\theta}^{2}s_{\theta}^{2}} \\ s_{\theta}^{4} & c_{\theta}^{4} & {2\; c_{\theta}^{2}s_{\theta}^{2}} & {4\; c_{\theta}^{2}s_{\theta}^{2}} \\ {c_{\theta}^{2}s_{\theta}^{2}} & {c_{\theta}^{2}s_{\theta}^{2}} & {c_{\theta}^{4} + s_{\theta}^{4}} & {{- 4}\; c_{\theta}^{2}s_{\theta}^{2}} \\ {c_{\theta}^{2}s_{\theta}^{2}} & {c_{\theta}^{2}s_{\theta}^{2}} & {{- 2}\; c_{\theta}^{2}s_{\theta}^{2}} & \left( {c_{\theta}^{2} - s_{\theta}^{2}} \right)^{2} \\ {c_{\theta}^{3}s_{\theta}} & {{- c_{\theta}}s_{\theta}^{3}} & {{c_{\theta}s_{\theta}^{3}} - {c_{\theta}^{3}s_{\theta}}} & {2\left( {{c_{\theta}s_{\theta}^{3}} - {c_{\theta}^{3}s_{\theta}}} \right)} \\ {c_{\theta}s_{\theta}^{3}} & {{- c_{\theta}^{3}}s_{\theta}} & {{c_{\theta}^{3}s_{\theta}} - {c_{\theta}s_{\theta}^{3}}} & {2\left( {{c_{\theta}^{3}s_{\theta}} - {c_{\theta}s_{\theta}^{3}}} \right)} \end{bmatrix} \cdot \begin{bmatrix} Q_{xx} \\ Q_{yy} \\ Q_{xy} \\ Q_{ss} \end{bmatrix}}} & (10) \end{matrix}$

where c_(θ) and s_(θ) are cos(θ) and sin(θ) respectively. Qxx, Qyy, Qxy and Qss are the on-axis stiffness components of the composite which are found using the following equations, i.e., Equation 11, Equation 12, Equation 13 and Equation 14 below [50]:

Q _(xx)=(1−v _(x) v _(y))⁻¹ E _(x)  (11)

Q _(yy)=(1−v _(x) v _(y))⁻¹ E _(y)  (12)

Q _(xy)=(1−v _(x) v _(y))⁻¹ v _(y) E _(y)=(1−v _(x) v _(y))⁻¹ v _(x) E _(x)  (13)

Q _(ss) =E _(s)  (14)

The stiffness of a unidirectional composite decreases rapidly as the angle θ between the fibre axis and loading axis is increased as shown in FIG. 44 [50]. Low stiffness of the PMC component and eventual failure may result should the fibre orientation deviate from the design specification as a result of draping operations that are badly engineered or implemented.

The preforming operation involves the deformation of the textile layers which are then superimposed to create a preform which should be a near net shape fibre bed comprised of only dry reinforcement, with possibly a small amount of binder to hold the textile layers in place. The process and the deformation modes encountered during preforming were discussed in previous sections, with the exception of nesting. Nesting occurs when multiple layers of textile reinforcement are compacted and tows from one layer penetrate between the tows of the adjacent layer. Nesting may reduce the relative motion between textile layers and enable the textile to be compacted more easily [51]. It should be noted that in theory textiles are periodic and are made of perfectly straight and equidistant yarns. Therefore, in theory they can be superimposed while keeping this theoretical regularity with yarns from different layers perfectly stacked on top of each other, or else perfectly staggered as seen in FIG. 45 [52]. In practice there is no such regularity in superimposed textile layers so nesting will be prevalent in real preforms and it will vary from point to point in the preform.

Another point of practical importance should be mentioned. It is not possible, using current textiles and draping methods, to successfully drape any preform with a single piece of textile, covering the surface of the mould entirely. Generally this can only be done in cases of small parts which are mostly flat or only gently curved. For this reason, multiple pieces of fabric are used within each layer, creating joints in the preform. Several types of joints exist such as lap joints, butt joints and step joints, FIG. 46 and FIG. 47. Only butt and step joints may be used for manufacturing processes such as RTM where the extra thickness of the lap joint makes it impossible in practice for the mould to close on the preform. While commonly used in VARTM applications, lap joints increase the local volume fraction of the preform at the joint seems [53]. Joints may cause problems by enabling resin to racetrack in the gaps between the textile pieces [54] during the infusion process.

To temporarily affix multiple pieces of textile to the preform mould, adhesives commonly called tackifiers or binders are typically used. Tackifiers, often supplied as a powder, can also be applied between layers in multilayered textiles to simplify the handling of textile pieces in the creation of complex preforms [55]. While the practical advantages to the preforming operation are evident, the use of a tackifier may have adverse effects on the infusion operation. Preform permeability decreases and may become uneven as tackifier concentration is increased unless the tackifier is located within yarns [56]. The tackifier may also interfere with the resin on a chemical basis, therefore care should be taken to ensure compatibility between the tackifier and resin [56].

The simulation of the draping operation can be performed using geometric principles, using a method called kinematic simulation algorithm. The algorithm is based on five assumptions as laid out by Mack and Taylor [8]:

(1) The fibres are inextensible

(2) Fibre crossovers (or nodes) act as pin-joints with no relative slip

(3) Fibre segments are straight between joints

(4) Uniform surface contact is achieved between yarns and the surface to be draped

(5) Fabric layers are infinitely thin

The result is similar to a fishnet and can be solved as long as a start point and certain constraints including initial draping orientations are defined. Early simulations were performed on spheres where the start point is the top of the sphere and the initial constraints are two yarns laid at 90 degrees from each other, which emanate from the start point and continue to the end of the surface to be covered [9], see FIG. 48.

The process of modeling the draping kinematically involves calculating the location of the crossover points of weft and warp yarns. The crossover points should lie on the surface of the mould to be draped, at the intersection of two spheres. The two spheres are centered on the constrained warp and weft yarns, at a distance equal to the yarn segment length from the start point along each yarn, hence the spheres have a radius equal to the yarn segment length as seen in FIG. 49.

Subsequent crossover points are determined in succession based on previously determined cross-over points, in the same manner. It is possible to determine the location of any crossover point if and only if the location of the adjacent crossover points in the weft and warp direction are known. It is also possible to constrain the initial warp and weft yarns in different manners for the same start point and geometry, leading to different simulation results as seen in FIG. 50 [7]. Similarly, the start point may be changed while the angle between constrained yarns and the geometry remain identical, leading to drastically different results as seen in FIG. 51 [57].

The constrained warp and weft yarns do not always follow easily determined straight lines; on complex geometries it is usual for the constrained yarns to behave as geodesics [58], defined as lines that follow non-slip paths on a curved surface. In order to fully simulate the entire draping process, including the manual operations done by a person, it is possible to perform simulations with geodesics that are further manipulated and modified [10].

The algorithm and mathematics for kinematic draping are described below and included as the basis of the software according to one embodiment of the present invention, prior to the modifications needed to simulate the draping of variable-length textiles.

Algorithms such as the Monte Carlo family of methods are used when deterministic methods are either unfeasible or would take unrealistic amounts of computing resources to achieve results. The Monte Carlo methods involve using statistical probabilities to solve large and complex problems related to physical or mathematical systems [59]. The methods can also be used for optimisation and are thus based on the random walk, a type of Markov Chain where successive random steps are taken. A Markov chain is defined as a process where the next state depends only on the current state, with no consideration on how the present state was achieved. Monte Carlo methods include among others the evolution strategy [60], the Metropolis method [61] and simulated annealing [62]. All of the methods start at a specific configuration which is altered randomly, or mutated in the case of evolution strategy; at each iteration a decision process occurs to decide if the new or original configuration is kept.

The evolution strategy method mimics evolution in a natural environment such as mutations or changes to an individual's configuration, which produce offspring with a higher survival rate. Original configurations are called parents and new configurations are called mutants. The decision process used for deciding whether the mutant or parent is kept is based on the fitness level, with a high fitness level being desirable. The fitness level is generally based on a property for which the system is optimised; in the case of draping the fitness level could be attributed to the surface area covered by a single piece of textile, for example. After each iteration, the fitness levels of the parent and mutant are compared and the individual with the best fitness level becomes the parent for the next iteration. The evolution strategy may produce one or several (λ) mutants per iteration, each strategy being denoted as (1+1)-ES and (1+λ)-ES respectively. In cases where multiple mutants are generated it is possible to disregard the parents when following the decision process, in a strategy denoted as (1,λ)-ES. The evolution strategy method may also be expanded to include recombinations of multiple individuals as well as mutations of single individuals [60]. This requires that multiple parents are used for each iteration, usually the μ best individuals of the previous iteration. The strategies which involve multiple parents are denoted as (μ+λ)-ES and (μ, λ)-ES, in which the parents may or may not be selected as the parents of the next generation, respectively.

The evolution strategy method may be considered a greedy algorithm [63] since it always selects the individual with the highest fitness rating. Only in strategies such as (1, λ)-ES or (μ, λ)-ES may a mutant with a lower fitness level than the parent be chosen due to the fact that the parent is discarded. Because greedy algorithms always select the best configuration for the current iteration, it is possible to reach a local maximum which can keep the system from reaching a global maximum. At any given iteration it is impossible to know if a certain state change will be beneficial in the short term as well as the long term. The more complex Monte Carlo methods [61, 62] address this issue by allowing for configuration changes which are not beneficial in the current system state. In the Metropolis [61] method, the probability of choosing the new configuration depends on the likelihood ratio between the new and original configurations. Should the new configuration state be more likely than the original configuration, the new configuration is chosen, but if the new configuration is less likely than the original configuration there is a probability that either the original or chosen configurations are chosen, based on the likelihood ratio. The likelihood ratio is dependent on the application and probability functions used. In the case presented by Metropolis [61] the likelihood ratio is based on the energy of the system. Should the energy decrease with the new configuration, the likelihood ratio is unity or above and the new configuration is chosen. Should the energy increase with the new configuration, the likelihood ratio is less then unity and the probability P of keeping the new configuration is based on the energy difference Δe between configurations, the temperature T of the system and the Boltzmann constant kb, as shown in Equation 15 below:

P=e ^(Δe/k) ^(b) ^(T)  (15)

Simulated annealing [62] is a variant of the Metropolis method where the temperature of the system is reduced after each iteration following a cooling schedule. The cooling of the system effectively reduces the probability of keeping configurations which increase the energy of the system. Much like annealing in metals, the molecules are permitted to move freely at high temperatures and are less free as the temperature is reduced. Simulated annealing enables the optimisation to recover local maxima when the temperature is high while increasingly restricting the probability of new higher energy configurations as the system converges to a solution.

While both the Metropolis and simulated annealing algorithms attempt to solve the problems associated with local maxima, it is very difficult to determine the proper probability functions to be used for a specific problem such as the optimisation of draping textiles. The evolution strategy, especially (1+1)-ES, is much simpler to implement since only the fitness rating needs to be defined.

In order to predict and visualise the behaviour of textiles as they are deformed onto a geometric shape, software which can accurately and consistently predict the deformation of a draped textile reinforcement was written and validated. The software according to one embodiment of the present invention is based on the kinematic approach outlined above, which was modified to enable the software to simulate both standard constant-length and variable-length textile reinforcements. The algorithm used for draping both constant and variable-length textiles is detailed in the following sections. The optimisation of variable-length textiles and the validation of the draping software are described below.

The software was written in C++ and uses the OpenGL [64] framework to render 3D visualisations of the simulation. A user interface framework called QT [65] was used for providing a graphical user interface (GUI), enabling ease of use. The addition of the GUI enables the software to be used as a tool for the design and manufacture of textiles as well as for research. Windows-based computers can execute the software following the installation of the Microsoft Visual C++ 2005 Redistributable Package [66]. The software may drape, optimise and show drape results in one window while any user inputs may be done via a series of menus, keyboard shortcuts, slider bars and mouse commands. An OpenGL window and some text boxes allow for the program to display 3D renderings of the drape as well as information such as surface area covered and various optimisation data. The software's GUI as it appears when first opened is shown in FIG. 52.

Several steps of the draping process are performed individually within the software, outlined as follows:

1. Load a properly formatted model of the part to drape

2. Select the drape start coordinates

3. Toggle between available start elements (if more than 1 are available)

4. Input the desired geodesic orientation angle

5. Drape the model

Each step is dependent on the previous step, therefore every preceding step should be completed before a given step can be performed. However, it is possible to repeat a previously performed step, which will erase the data of subsequent steps. The details on how these steps are performed as described below. It is also possible to perform additional tasks such as loading and storing simulation data, creating and using patches or zones, creating multiple drape simulations on the same model, displaying quantitative drape results and adding virtual magnets. These tasks are described below.

The software can simulate the draping operation on a wide variety of shapes derived from solid models created using software such as SolidWorks™. For the software to recognise these solid models they should be meshed using a pre-processor such as Gambit™ The solid model is first stripped of its thickness so that only a shell remains. This shell is then covered with a continuous mesh made of three-noded elements, which may be of varying sizes. The elements should be adequately sized to accurately follow the geometry and curvatures of the solid model. Performance reduction and issues within the algorithm may arise with poorly constructed meshes as detailed in the next section.

Once a satisfactory mesh is created in separate software such as Gambit™, it should be saved under a specific format, details of which are found in Appendix A, which can be read by the draping software (.model). The number and coordinates of each node are specified under this format, as well as the number of elements and the identity of the three nodes that make up each element.

When the model is loaded in the draping software, the vector normal to each element is calculated, normalised and stored within an array. This is done primarily to ensure that all normal vectors point inwards or outwards of the model. For example, vectors normal to the elements of a sphere will all point either towards the inside or all towards the outside of the sphere, instead of a random mixture of inward and outward facing vectors. Consistency of the normal vectors is important for the software to detect the orientation of the elements relative to gravity and for the software to be able to calculate the curvature of the model at any given point, for example. Storing the normal vectors within an array also removes redundant calculations as the normal vectors are used multiple times within the draping algorithm. To determine the normal vector of an element, two directional vectors d₁ and d₂ are needed. These are found by using two different combinations of the element nodes, Equation 16 and Equation 17 A cross product of the direction vectors yields the normal vector vn_(i), Equation 18, where i is the number of the element.

$\begin{matrix} {d_{1} = \frac{n_{1} - n_{3}}{{n_{1} - n_{3}}}} & (16) \\ {d_{2} = \frac{n_{1} - n_{2}}{{n_{1} - n_{2}}}} & (17) \\ {\overset{\_}{{vn}_{1}} = {d_{1} \times d_{2}}} & (18) \end{matrix}$

Once the normal vector for the first element is found, it is stored in the normal vector array and a flag indicating that the vector has been calculated for this element is set to 1 (true). Using this flag ensures that calculations are only performed once for each element, and removes the possibility of an infinite loop condition.

The next step of the algorithm consists in determining the normal vectors for neighbouring elements, defined as elements sharing two common nodes with an element. The normal vector for each of these elements is found in the same manner as described above in equations 16, 17 and 18. To determine if the vectors normal to neighbouring elements point towards the same side of the model surface, the angle θ_(e) between the normal vectors of the two elements is found in Equation 19:

θ_(e)=arccos({right arrow over (vn ₁)}·{right arrow over (vn ₂)})  (19)

Any angle beyond 90° indicates that the normal vector of one element faces inwards while the other faces outwards. The orientation of the first element within the list of elements found in the .model file dictates the orientation of all the others, thus the direction of the neighbouring element's normal vectors are reversed if the angle between the normal vectors to the first and second element is over 90°. This development is based on the assumption that no vectors normal to neighbouring elements with the same inwards or outwards orientation may have an angle between them of over 90°; or, that the angle between two neighbouring elements is always under 90° when 0° indicates that they lie in a common plane. For this assumption to be valid the mesh should be constructed with an adequate element size, or resolution. The element size should be sufficiently small to ensure that in curved areas the angle between neighbouring normal vectors with the same inwards or outwards orientation is always smaller than 90°. FIG. 53 shows the cross sections of neighbouring elements with their normal vectors where the mesh is adequately sized for the curvature (left) and where the mesh is too rough for the curvature (right), allowing for a large angle between the normal vectors.

It is possible to create a mesh where the element density changes across the model. In areas of simple geometry devoid of curvature, the use of large elements is desired to limit their number while in areas of complex geometry or small curvature radii, the use of smaller elements is desired to avoid the condition seen on the right-hand side of FIG. 53. Once the angles between the normal vectors of the first element and its neighbours are calculated and the orientation of these elements are made consistent, the normal vectors of the neighbouring elements are saved to the array and the flag indicating that the normal vector has been calculated is set to 1. The same process is repeated for each of the neighbours of the three neighbouring elements found above. The algorithm for the population of the element normal vector array is described by the flowchart shown in FIG. 54.

The portion of the flowchart named block A is repeated for each of the neighbours. Due to the elements being three-noded, the maximum number of neighbours of any element is three, while elements found on the edge of the model may only have two neighbours. The algorithm will loop as new sets of neighbours are found until all flags indicating that the normal vector of the element has been calculated are set to 1 (true); the required continuity of the mesh ensures that all elements will be accounted for.

The algorithm used for draping is based on the kinematic drape model are described above. The kinematic draping algorithm requires a surface which is supplied by the input model as described above. A model of a hemisphere loaded in the software and ready to be draped can be seen in FIG. 55. To drape the surface, a start location and some initial constraints should be defined, the methods used for which are detailed in this section along with the algorithm used to drape the surface of the model.

The start point is selected by choosing one of the three orthogonal planes and selecting two coordinate values in this plane, in order to trace a vector perpendicular to the selected plane. Ideally this vector will intersect the model in either one or many points. The software can handle up to ten intersections of the vector and model; further intersections are unlikely and will not be shown. The vector may not intersect any element; in this case the software will notify the user that the specified start point was not valid. The software will also notify the user if multiple intersections are found. The dialog used to specify the start point of the drape can be seen in FIG. 56, in this case the x-y plane was chosen.

The first step taken by the code in determining the start point, based on the information given, is to determine where the intersections between the selection vector and the model occur. Since the element which contains the intersection is unknown initially, the software should iterate through all the elements to find possible intersection points. Each element is projected onto the selected plane and six vectors are defined as seen in FIG. 57. The left-hand side of the figure depicts an element for which the start point s is within the element. The right-hand side of the figure depicts an element for which the start point is outside of the element. The vectors are subscripted with a 2D to indicate that these calculations occur in 2D. When in the x-y plane, y-z plane or z-x plane, all z coordinates or x coordinates or y coordinates are ignored respectively.

The equations used to find the six vectors in the x-y plane are Equations 20, 21, 22, 23, 24 and 25 below:

{right arrow over (n ₁ n ₂ _(2D) )}=[n _(2x) −n _(1x) ,n _(2y) −n _(1y)]  (20)

{right arrow over (n ₂ n ₃ _(2D) )}=[n _(3x) −n _(2x) ,n _(3y) −n _(2y)]  (21)

{right arrow over (n ₃ n ₁ _(2D) )}=[n _(1x) −n _(3x) ,n _(1y) −n _(3y)]  (22)

{right arrow over (n ₁ s _(2D))}=[s _(x) −n _(1x) ,s _(y) −n _(1y)]  (23)

{right arrow over (n ₁ s _(2D))}=[s _(x) −n _(2x) ,s _(y) −n _(2y)]  (24)

{right arrow over (n ₃ s _(2D))}=[s _(3x) −n _(3x) ,s _(y) −n _(3y)]  (25)

With these six vectors, three different 2D cross products can be calculated. Vectors having the same origin are multiplied together:

{right arrow over (n ₁ n ₂ _(2D) )}×{right arrow over (n ₁ s _(2D))},{right arrow over (n ₂ n ₃ _(2D) )}×{right arrow over (n ₂ s _(2D))} and {right arrow over (n ₃ n ₁ _(2D) )}×{right arrow over (n ₂ s _(2D))}

To determine if the start point is within the given element, the result of these three cross products is examined. If the point is placed such that the cross products yield three positive values or three negative values, point s should be within the element. If one cross product yields a result with a different sign than the other two, point s is outside of the element. The curved arrows in FIG. 57 illustrate the right hand rule of the cross product. On the left-hand side all arrows are counter-clockwise indicating that the cross products are of the same sign. On the right-hand side two arrows are counter-clockwise and one is clockwise indicating a difference in the sign of the cross products. If any cross product has a result of zero this means that the two vectors are collinear and the start point coincides with one of the edges of the element. This solution is rejected as it can lead to an erroneous intersection. When an element is identified as holding an intersection point, it is stored and the total number of elements containing a possible solution is counted. If no intersections are found, the user is notified that the selected coordinates are not suitable and if multiple intersections are found, the user is notified of this. When multiple elements hold an intersection point, they are all highlighted in red as seen in FIG. 58. The start point can then be chosen by toggling between the possibilities. A maximum of ten possibilities was chosen as it is very unlikely that a vector will intersect a model at more than ten points.

All previous operations were performed in 2D space, hence while the intersecting element and two coordinates are known, the third coordinate of the start point remains to be determined. The equation of the plane of the element in which the start point resides is needed as shown in Equation 26:

Ax+By+Cz=D  (26)

The vector normal to the element was previously computed during pre-processing and it can be used to find values for A, B and C in Equation 26 since the components of the vector appear directly in the equation of the plane, i.e., Equation 27 below:

{right arrow over (vn)}=(Aî,Bj,Ck)  (27)

The last component in the plane's equation, D, can be found by computing the dot product of the plane's normal vector with any point lying in the plane, say node 1 of the element for example, as shown in Equation 28 below.

D=An _(1x) +Bn _(1y) +Cn _(1z)  (28)

Substituting the two known components of the start point into equation (3.11) leads to the third component of the start point. The equation used in the case of the x-y plane is Equation 29 shown below:

$\begin{matrix} {S_{z} = \frac{D - {Bs}_{y} - {As}_{x}}{C}} & (29) \end{matrix}$

The kinematic draping model requires initial constraints to identify a unique solution for a given case. The initial constraints are two geodesics that represent one warp yarn and one weft yarn, passing through the start point. Geodesics correspond to a straight line on a curved surface and describe the shortest path between two points on a curved surface. This is ideal to represent a constrained yarn on the preform as it is intuitive to place a yarn along a geodesic and this yarn is less likely to move once in position. The geodesics cross at 90° from each other at the draping start point and the initial orientation of the geodesics in the selection plane can be modified by the user as seen in FIG. 59, where the angle between the geodesics and axes of the selection plane is 0° on the left and 30° on the right. While the angle between the geodesics and the selection plane axes can change, the angle between the two geodesics is fixed at 90°.

Each geodesic is defined in the software as a series of segmented lines that extend within some of the model's elements. The default orientation of the geodesics is parallel to each of the reference axes forming the plane that was selected for finding the starting point of the drape, but this orientation may be modified by the user. Modifications to the default orientation are made once the default orientation has been established, which is dependent on the selected plane. If the x-y plane was chosen the orientation of the first segment is they axis as projected on the starting element plane; similarly if the y-z plane was chosen then the orientation is the z axis as projected on the element plane, and if the z-x plane was chosen then the orientation is the x axis as projected on the element plane. The default initial direction vector for the first geodesic, illustrated here for the case of an x-y plane selection, is as follows: geod1, as shown in Equation 30 below:

{right arrow over (geod1)}=(0î,1j,zk)=geod1_(e)−geo1_(s)  (30)

where vectors geod1 _(s) and geod1 _(e) are the start and end points of the vector, respectively. The z component of vector geod1 is unknown at this stage, it can be found using the start and end points of the vector as shown in FIG. 60.

The start point of the vector is known: it is the selected start point for the drape. The x (0) and y (1) components of the end point of the vector are known since the vector points along the y axis. The element plane on which the point resides is also known. Therefore, the same methodology used to find the third coordinate of the drape start point described above may be used to find the third coordinate of the end point of the vector. Using Equation 30 with the known start and end points of the vector leads to a fully defined initial direction vector for the first geodesic for the default orientation. If an angle θ_(g) other than 0° is specified by the user, the vector should be subjected to a rotation about the vector normal to the element where the drape point resides. The rotation about the vector can easily be matched in a laboratory trial as the rotation is made about the tangent to the surface of the model. The following equation, i.e., Equation 31, is used for the rotation of the vector:

$\begin{matrix} {\begin{bmatrix} {{geod}\; 1_{x}} \\ {{geod}\; 1_{y}} \\ {{geod}\; \text{?}} \end{bmatrix} = {\quad{\begin{bmatrix} {v_{nx}^{2} + {\left( {1 - \text{?}} \right)c}} & {{v_{nx}{v_{ny}\left( {1 - c} \right)}} - {v_{nz}s}} & {{\text{?}\left( {1 - c} \right)} + {v_{ny}s}} \\ {{v_{nx}{v_{ny}\left( {1 - c} \right)}} + {\text{?}s}} & {v_{ny}^{2} + {\left( {1 - v_{ny}^{2}} \right)c}} & {{\text{?}\left( {1 - c} \right)} - {v_{nx}s}} \\ {{v_{nx}{v_{nz}\left( {1 - c} \right)}} - {v_{ny}s}} & {{v_{ny}\text{?}\left( {1 - c} \right)} + {v_{nx}s}} & {\text{?} + {\left( {1 - v_{nz}^{2}} \right)c}} \end{bmatrix}{\quad{\begin{bmatrix} {{geod}\; 1_{x}^{\prime}} \\ {{geod}\; 1_{y}^{\prime}} \\ {{geod}\; \text{?}} \end{bmatrix}\text{?}\text{indicates text missing or illegible when filed}}}}}} & (31) \end{matrix}$

where c, s and are geod1 are cos θ_(g), sin θ_(g), and the default orientation of the geodesic, respectively. The second geodesic is obtained by rotating the first geodesic by 90° about the vector normal to the element according to Equation 32 below:

$\begin{matrix} {\begin{bmatrix} {{geod}\; 2_{x}} \\ {{geod}\; 2_{y}} \\ {{geod}\; 2_{z}} \end{bmatrix} = {R\begin{bmatrix} {{geod}\; 1_{x}} \\ {{geod}\; 1_{y}} \\ {{geod}\; 1_{z}} \end{bmatrix}}} & (32) \end{matrix}$

where R is the rotation matrix as seen in Equation 31 with θg=90°.

With the start point and initial direction of each geodesic known, it is now possible to determine the extremities of the geodesic segments in the first segment of each geodesic as shown in FIG. 61. To simplify the way in which data is stored, the two geodesics are each split in two at the start point, now referred to as geo[0][0], to form four geodesics that extend from that point and in one direction only. The intersection point coordinates are stored to an array geo[i][j], where i refers to a specific geodesic and j refers to the sequential order from the start of the geodesic at j=0. While the identity of the element edge that intersects the geodesic line segment is obvious to the human eye, the software should look for an intersection between every combination of geodesic directional vector and element edge. When all six geodesic and element edge combinations are examined, four intersection points geo[0][1], geo[1][1], geo[2][1] and geo[3][1] should exist.

The intersections are found by equating the equations of the lines that represent a specific element edge and one of the geodesics according to Equation 33 shown below:

{right arrow over (n ₁ n ₂)}·m _(i) +n ₁={right arrow over (geod1)}·k+geo[0][0]  (33)

where mi and k are unknown variables. Equation 33 can be expanded into three equations, i.e., Equations 34, 35 and 36 below:

n ₁ n ₂ _(x) ·m _(i) +n _(1x)=geog1_(x) ·k+geo_(x)[0][0]  (34)

n ₁ n ₃ _(y) ·m _(i) +n _(1y)=geog1_(y) ·k+geo_(y)[0][0]  (35)

n ₁ n ₂ _(z) ·m _(i) +n _(1z)=geog1_(z) ·k+geo_(z)[0][0]  (36)

The system of equations can be solved in three different manners by combining Equations 34 and 35, Equations 35 and 36 or Equations 34 and 36, and solving for mi. In some cases the terms associated to the edge vector or the geodesic vector will equal 0 which may render one or many combinations unsolvable due to a division by 0. For this reason, the software should compute all three solutions. The three solutions for m_(i) are labelled m_(xy), m_(yz) and m_(zx) and are found with Equations 37, 38 and 39 below:

$\begin{matrix} {m_{xy} = \frac{{{geod}\; 1_{x}\left( {{n_{1}n_{2\; y}} - {{{geo}_{y}\lbrack 0\rbrack}\lbrack 0\rbrack}} \right)} + {{geod}\; 1_{y}\left( {{{{geo}_{x}\lbrack 0\rbrack}\lbrack 0\rbrack} - {n_{1}n_{2_{x}}}} \right)}}{{{geod}\; {1_{y} \cdot n_{1}}n_{2_{x}}} - {{geod}\; {1_{x} \cdot n_{1}}n_{2_{y}}}}} & (37) \\ {m_{yz} = \frac{{{geod}\; 1_{y}\left( {{n_{1}\text{?}} - {{{geo}_{z}\lbrack 0\rbrack}\lbrack 0\rbrack}} \right)} + {{geod}\; 1_{z}\left( {{{{geo}_{y}\lbrack 0\rbrack}\lbrack 0\rbrack} - {n_{1}\text{?}}} \right)}}{{{geod}\; {\text{?} \cdot n_{1}}n_{2_{y}}} - {{geod}\; {1_{y} \cdot n_{1}}\text{?}}}} & (38) \\ {{\text{?} = \frac{{{geod}\; 1_{x}\left( {{n_{1}\text{?}} - {{{geo}_{z}\lbrack 0\rbrack}\lbrack 0\rbrack}} \right)} + {{geod}\; 1_{z}\left( {{{{geo}_{x}\lbrack 0\rbrack}\lbrack 0\rbrack} - {n_{1}\text{?}}} \right)}}{{{geod}\; {\text{?} \cdot n_{1}}\text{?}} - {{geod}\; {1_{x} \cdot n_{1}}\text{?}}}}{\text{?}\text{indicates text missing or illegible when filed}}} & (39) \end{matrix}$

Additionally, due to peculiarities in floating point arithmetic [67] a series of checks should be performed before computing the solutions for m_(i) in order to avoid erroneous numbers. Since numbers are converted into binary form for computation and storage to memory it is possible for very small numbers to be significantly altered, which may cause large scale errors in computation; these errors usually arise when subtracting near identical numbers. The subtractions in the denominators of Equations 37, 38 and 39 are susceptible to floating point errors therefore the components involved in the subtractions are checked using Equations 40, 41 and 42 below:

$\begin{matrix} {\mspace{79mu} {{{{{geod}\; {1_{y} \cdot n_{1}}n_{2_{x}}} - {{geod}\; {1_{x} \cdot n_{1}}n_{2_{y}}}}} > {{{geod}\; {1_{y} \cdot n_{1}}{n_{2_{x}} \cdot ɛ_{m}}}}}} & (40) \\ {\mspace{79mu} {{{{{geod}\; {1_{z} \cdot n_{1}}n_{2_{y}}} - {{geod}\; {1_{y} \cdot n_{1}}n_{2_{z}}}}} > {{{geod}\; {1_{z} \cdot n_{1}}{n_{2_{y}} \cdot ɛ_{m}}}}}} & (41) \\ {\mspace{79mu} {{{{{{geod}\; {1_{z} \cdot n_{1}}n_{2_{x}}} - {{geod}\; {1_{x} \cdot n_{1}}\text{?}}}} > {{{geod}\; {1_{z} \cdot n_{1}}{\text{?} \cdot ɛ_{m}}}}}{\text{?}\text{indicates text missing or illegible when filed}}}} & (42) \end{matrix}$

where ε_(m) is the threshold of closeness between the two components. The variable εm was set to 0.0001 by running the algorithm multiple times on different models with different parameters and choosing the most strict value that didn't produce false negatives. If Equation 40 is true m_(xy) is computed, if Equation 41 is true m_(yz) is computed and if Equation 42 is true m_(zx) is computed. It is possible to have situations where multiple values for m_(i) are computed, which are not necessarily identical due to additional floating point arithmetic errors. In cases where only one m_(i) is found it is used for further calculations. In cases where there are two m_(i) values the first value of m_(i) is taken. Should three mi values be found the software compares for closeness to determine which pair of values are more alike, the software then uses one of the values in the pair as the value for mi. This is done to select the most precise value for m_(i) under the assumption that the more exact value is the one that is obtained multiple times. The algorithm used for comparing the three values is detailed in FIG. 62 and uses an increasingly strict threshold to compare each pair until only one pair passes the comparison test or the maximum threshold is achieved, at which point the algorithm defaults to m_(xy). When no m_(i) values can be found, the software is stopped to display the problem; this situation is unlikely in view of the precautions and steps taken before computing the values.

When a value of mi is found which satisfies the intersection between two lines as outlined in Equation 43 below, it is used to determine the coordinates of the point of intersection geo[0][1] between the element edge and the geodesic:

geo[0][1]=n ₁+{right arrow over (n ₁ n ₂)}·m _(i)  (43)

The intersection does not necessarily lie on the element edge as the algorithm rightly assumes infinite lines. In FIG. 63 p_(i) is the intersection between geodesic vector geod1 and the element edge vector n₂n₃ but does not lie within the element edge boundaries.

To ensure that the intersection is valid and does lie within the element edge boundaries the value of m_(i) is inspected. Any value of m_(i) between 0 and 1 will result in an intersection which lies on the element edge. Any other value of m_(i) indicates an intersection which lies on an extension of the line of the element edge. Geodesic and element edge combinations which lead to intersections not within the element edge boundary are rejected.

The situations depicted in FIG. 61 and FIG. 63 relate to the element containing the drape start point. Subsequent elements along each geodesic will resemble what is depicted in FIG. 64, in which only one geodesic lies within the element. The methodology is identical to the one used for the element containing the drape start point with a few exceptions: only one geodesic is present therefore only half of the geodesic to element edge combinations exists and the value of j used is the value of j for the last known intersection point along the geodesic. The software should also ensure not to use the value of geo[1] [j] as the subsequent intersection point as it will be the result of one of the geodesic and element edge combinations.

The geodesic direction vector geod1 used in determining subsequent intersection points is not necessarily identical to the initial geodesic direction vector. It is necessary to determine the direction vector for the subsequent geodesic segment after finding each intersection point, the method for which is detailed in the following section.

When a geodesic segment reaches an element edge at the geodesic intersection point geo[i][j], it is necessary to determine on which element the next geodesic segment will lie. The element edge which was reached by the last known geodesic segment is used to determine the next element by finding which other element has the same element edge. The element edge is defined by the two nodes at its extremities, specific combinations of which are found in only two elements. The software should iterate though the element list to find the other element which has the same two nodes as the element on which the last known geodesic segment lies. If no other element contains the same node combination the software stops progressing this geodesics as the geodesic has reached the edge of the model. Once the next element has been identified, a new direction vector for the geodesic should be computed, based on the difference between the planes of the two elements. If the element planes in which the elements are defined are coplanar, the geodesic direction vector will not change; if the element planes are not coplanar the new direction vector will be such that should the element planes rotate and become coplanar, the direction vectors would be collinear. To determine the new geodesic direction vector geod1 ₂ on element B the initial vector geod1 ₂ on element A is reduced into two components parallel and perpendicular to the common edge vector n_(a)n_(b). The resulting components are then used for creating the new geodesic direction vector geod1 ₂. The geometry involved in determining the new direction vector is shown in FIG. 65.

Vectors geod1 ₁ and n_(a)n_(b) are known unit vectors representing the geodesic direction vector on element A and the direction of the current common element edge vector, respectively. Point geo[i] [j], shown here as pi to simplify vector notation, is the last known intersection point of the geodesic, which was previously determined and fully defined; it is also defined as the end point of vector geod1 ₁. Vector p_(b)p_(i) is the projection of geod1 ₁ onto the common element edge, for which the direction vector is n_(a)n_(b). Its direction is identical to the direction of vector n_(a)n_(b) but its magnitude ∥p_(b)p_(i)∥ should be found using the dot product as shown in Equations 44 and 45 below:

∥{right arrow over (p _(b)p_(i))}∥={right arrow over (geod1₁)}·{right arrow over (n _(a) n _(b))}  (44)

{right arrow over (p _(b) p _(i))}=∥{right arrow over (p _(b) p _(i))}∥·{right arrow over (n _(a) n _(b))}  (45)

It is possible for vector n_(a)n_(b) to be oriented in the opposite direction as the one depicted in FIG. 65 due to the fact that nodes n_(a) and n_(b) may be defined as pictured or with their positions reversed. In such cases the magnitude of projection ∥p_(b)p_(i)∥ will be negative but vector p_(b)p_(i) will remain as seen in FIG. 65. Point p_(b) is the start point of vector p_(b)p_(i) and it is easily found using Equation 46 below:

p _(b) =p _(i)∥{right arrow over (p _(b) p _(i))}∥·{right arrow over (n _(a) n _(b))}  (46)

The projection of vector geod1 ₁ perpendicular to the common element edge, vector p_(a)p_(b), is easily found once point p_(a) is defined. Point p_(a) is the start point of vector geod1 ₁, determined by Equations 47 and 48 below

p _(a) =p _(i)−{right arrow over (geod1₁)}  (47)

{right arrow over (p _(a) p _(b))}=p _(b) −p _(a)  (48)

The magnitude of vector p_(a)p_(b), ∥p_(a)p_(b)∥, may be computed using Equation 49 below:

∥{right arrow over (p _(a) p _(b))}∥=√{square root over ((p _(bx) −p _(ax))²+(p _(by) −p _(ay))²+(p _(bz) −p _(az))²)}{square root over ((p _(bx) −p _(ax))²+(p _(by) −p _(ay))²+(p _(bz) −p _(az))²)}{square root over ((p _(bx) −p _(ax))²+(p _(by) −p _(ay))²+(p _(bz) −p _(az))²)}  (49)

At this stage the initial geodesic direction vector geod1 ₁ has been separated into two components, vector p_(b)p_(i) and p_(a)p_(b) with known directions and magnitudes. The new geodesic direction vector geod1 ₂ is the sum of vectors p_(i)p_(d) and p_(d)p_(e) which have the same magnitude as vectors p_(b)p_(i) and p_(a)p_(b) respectively. Vector p_(i)p_(d) is also in the same direction as vector p_(b)p_(i) as shown by Equation 50 below:

{right arrow over (p _(i) p _(d))}−{right arrow over (p _(b) ^(p) _(i))}  (50)

The direction of vector p_(d)p_(e) should be perpendicular to the common element edge while being within the new element's plane, determined by a cross product of the edge vector and element B's normal vector, which was determined upon model pre-processing. Vector pap, is found by multiplying the magnitude of vector p_(a)p_(b) with the unit vector obtained via the cross product as shown in Equation 51:

$\begin{matrix} {\overset{\_}{p_{d}p_{e}} = {{\overset{\_}{p_{a}p_{b}}}\frac{\left( {\overset{\_}{v_{n}} \times \overset{\_}{n_{a}n_{b}}} \right)}{\left( {\overset{\_}{v_{n}} \times \overset{\_}{n_{a}n_{b}}} \right)}}} & (51) \end{matrix}$

The orientation of vector p_(d)p_(e) is not necessarily as depicted in FIG. 65 due to the different possible orientations of the common element edge vector n_(a)n_(b) and of the element plane normal vector v_(n), which will both affect the orientation of the result of the cross product following the right hand rule. The orientation of vector p_(d)p_(e) is checked by solving for the intersection of two lines as shown in Equation 52 below:

{right arrow over (p _(d) p _(e))}·q+n _(c)={right arrow over (n _(a) n _(b))}·r+n _(a)  (52)

where q and r are unknown variables to solve for, and n_(c) is the node within element B which is not part of the common element edge. The system can be expanded into a system of three equations and solved in a similar way as the system of equations formed by Equations 34, 36, 37, 38 and 39 as described above. It is also necessary to take the same precautions in avoiding errors caused by floating point arithmetic using equations similar to equations 40, 41 and 42 using a threshold ε_(m) of 0.001 instead of 0.0001. Up to three different values of q may be found, the correct selection of which is described above and shown in FIG. 62. When a value for q is determined the sign of q is examined and the orientation of vector p_(d)p_(e) is reversed if q is positive; this ensures that vector p_(d)p_(e) is as shown in FIG. 65. The new direction vector geod1 ₂ can now be determined as shown in Equation 53 below:

{right arrow over (geod1₂)}={right arrow over (p _(i) p _(d))}+{right arrow over (p _(d) p _(e))}  (53)

The new direction vector is stored to memory and the next geodesic line segment direction vector can be determined following the same procedure as above. A flowchart of the entire operation of creating the geodesics is shown in FIG. 66 and FIG. 67.

With a start point and geodesics defined it is now possible for the software to create the mesh representing the fishnet that drapes the surface of the model. The mesh is a collection of yarn crossovers interconnected by lines that represent individual yarns of the textile reinforcement. The coordinates of the yarn crossovers are stored to an array fishnet[a][b] where a and b are variables used to denote the location of the crossovers seen as dots in FIG. 68.

Due to the fact that native C++ programming does not allow for negative indices in arrays, the centre of the array is set arbitrarily at [250,250]. Therefore, the bottom left of the array is at [a,b]=[0,0] and the top right is at [a,b]=[501,501]. The distance between yarn crossovers l_(m) is a constant value for conventional constant-length textiles. However, this length is not constant when using variable-length textiles; in the latter case the software should also refer to twin arrays containing the yarn spacings at each crossover. The twin arrays use the same references as the crossover coordinate array, a and b; one array stores the lm for the a direction while the other stores the l_(m) for the b direction. The appropriate value of lm between yarn crossovers is stored to array using the indices of the yarn crossover furthest from the origin of the matrix [250][250] as shown in FIG. 69. The arrows point from the yarn spacing to where it is stored in array; the left-hand side of FIG. 69 represents the values of l_(m) in the a direction and the right-hand side of FIG. 69 represents the values of l_(m) in the b direction.

The first step in creating the mesh is to the determine the location of the yarn crossovers on the geodesics, shown as red dots in FIG. 70. It is important to note that in the example given it appears that certain geodesics follow a series of element edges; this is a special case based on the model and initial conditions.

Yarn crossover points on the geodesics do not normally coincide with the intersections between the geodesics and element edges, however these intersections are used for calculating the location of the crossovers. The first yarn crossover point fishnet[250][250] is already known as it coincides with the start point of the drape. The subsequent crossover points are at a distance equal to l_(m) away from the start drape point, along a geodesic, as seen in FIG. 71.

To find the first yarn crossover along one geodesic, the distance l between the drape start point geo[i][0] and the first intersection point of the geodesic geo[i][1] is calculated as shown in Equation 54:

l∥geo[i][0]−geo[i][1]∥  (54)

where i is any integer from 0 to 3 representing the geodesic. The total length l_(t) is the sum of the previous value of l_(t), l_(t-1), which is 0 when the previous crossover lies directly on a geodesic line segment intersection point or is the drape start point, and l as shown by Equation 55 below:

l _(t) =l _(t-1) +l  (55)

The value of l_(t) may be equal (FIG. 72), smaller (FIG. 73) or larger (FIG. 74) than the value of l_(m).

Should l_(t) be equal to l_(m) the next crossover point is shown in Equation 56 below:

fishnet[a][b+1]=geo[i][j+1]  (56)

where i represents the vector, j is the sequential location of the intersection on the geodesic, and a and b designate the location of the crossover within the array. The value of b is incremented in this example, but would be decremented for geodesic 2. The value of a also could have been decremented or incremented, for geodesics 0 and 1 respectively, instead of the value of b. Additionally, whenever yarn crossover coordinates are stored, a flag indicating that this crossover is known is set to 1 (true). In preparation for the next crossover, both the values of j and b are incremented before finding new values for 1 and I_(t) using Equations 44 and 45.

If l_(t) is larger than l_(m), FIG. 73, the yarn crossover point will be on the geodesic segment between the two geodesic intersection points.

The unit direction vector of the geodesic line segment between the two intersections is found using Equation 57 below:

$\begin{matrix} {\overset{\_}{v_{g}} = \frac{{{{geo}\lbrack i\rbrack}\lbrack j\rbrack}\mspace{14mu} {{{geo}\lbrack i\rbrack}\left\lbrack j \middle| 1 \right\rbrack}}{{{{{geo}\lbrack i\rbrack}\lbrack j\rbrack} - {{{geo}\lbrack i\rbrack}\left\lbrack {j + 1} \right\rbrack}}}} & (57) \end{matrix}$

The crossover point is calculated using Equation 58 below:

fishnet[a][b+1]={right arrow over (v _(g))}·(l _(m)−(l _(t) −l))+geo[i][j]  (58)

The flag indicating that the yarn crossover is known is set to 1 (true) and the value of l_(t) is modified as it will be used in Equation 55 to find the value of l_(t) for the next crossover as shown in Equation 59 below:

l _(t)=−(l _(m)−(l _(t) −l))  (59)

As per Equation 59 the length l_(t) becomes a negative value used to shorten the total length for the next crossover point so that it denotes only the length available to the next crossover point on the geodesic line segment. The relationship between l, l_(t) and l_(t-1) described by Equation 55 can be seen in FIG. 74 as the value of l is shortened by l_(t-1) to form the length of l_(t). If l_(t) is larger than l_(m) the yarn crossover point does not lie on the geodesic line segment between intersections geo[i][j] and geo[i][j+1], as seen in FIG. 74.

When this situation occurs j is incremented by 1, l_(t) is left unmodified and new l and l_(t) are found using Equations 54 and 55. The complete algorithm is shown in FIG. 75.

The algorithm continues until any one of four end conditions is met: when the end of the geodesic is reached, determined when the value of j exceeds the number of intersections within the geodesic being meshed, determined above; when the user-defined amount of yarn crossovers to mesh is reached; when the limits of the fishnet array are reached; or when a value for the yarn spacing is loaded from array as 0.

Once all four geodesics are meshed it is possible to determine the remaining yarn crossovers, more specifically, crossovers of yarns which are not geodesics. The mesh is split into four quadrants as seen in FIG. 76, which are fully independent from each other and can be meshed, or draped, separately.

The locations of yarn crossovers that are not on geodesics are dependent on the position of three yarn crossovers, two yarn spacings, and the geometry of the model being draped, as depicted in FIG. 77 and FIG. 78. For the purpose of simplicity, only quadrant 1 will be discussed in detail since the algorithms for each quadrant are similar.

The three known yarn crossover points are shown as hexagons while the yarn crossover point to solve for is shown as a cross. If the yarn crossover to solve for is fishnet[a+1][b+1] then the three known yarn crossovers required are fishnet[a][b], fishnet[a][b+1] and fishnet[a+1][b], renamed p_(o), p_(b) and p_(a), respectively, for simplicity in notation. If one of the three crossovers is undetermined the flag indicating whether it has been solved is false and the location of the yarn crossoverfishnet[a+1][b+1] cannot be determined. When all three dependant yarn crossover points are defined the unknown crossover point is determined by finding the intersection point of two spheres, shown in FIG. 78 and depicted as circles in FIG. 77, and the model surface. There are two such possible points and only one is the correct location for the yarn crossover; for constant-length textiles the incorrect point is p_(o).

The intersection of the two spheres can be determined before including the surface into the equation. The intersection of two spheres is a circle, shown in FIG. 79, and is found by solving for the two equations of the spheres in 3D space, i.e., Equations 60 and 61 below:

(x−p _(AX))²+(y−p _(Ay))²+(z−p _(Az))² =l _(mb) ²  (60)

(x−p _(Bx))²+(y−p _(By))²+(z−p _(Bz))² =l _(ma) ²  (61)

Due to the possibility of draping both conventional and variable-length textiles, the yarn spacing l_(m) is separated into the a direction and b direction yarn spacings, l_(ma) and l_(mb), respectively. Expanding both Equations 60 and 61 and subtracting the expanded form of Equation 61 from the expanded for of Equation 60 leads to Equation 62 below:

(2p _(Bx)−2p _(Ax))x+(2p _(By)−2p _(Ay))y+(2p _(Bz)−2p _(Az))z=l _(mi) ² −l _(ma) ² +p _(Bx) ² −p _(Az) ² +p _(By) ² −p _(Ay) ² +p _(Bz) ² −p _(Az) ²  (62)

which is the equation of the plane in which the circle of intersection between the two spheres is defined. From the definition of the equation of a plane, i.e., Equation 63 below:

c _(nx) x+c _(nz) y+c _(nz) z=c _(d)  (63)

the vector normal to the plane of the circle vector c, can be found and made a unit vector as shown in Equation 64 below:

$\begin{matrix} {\overset{\_}{c_{n}} = \frac{p_{B} - p_{A}}{{p_{B} - p_{A}}}} & (64) \end{matrix}$

The right-hand side of Equation 63 noted as c_(d), should be divided by the magnitude of vector c_(n), as was done to the left-hand side of Equation 63 as shown in Equation 65 below:

$\begin{matrix} {c_{d} = \frac{l_{mb}^{2} - l_{ma}^{2} + p_{Bx}^{2} - p_{Ax}^{2} + p_{By}^{2} - p_{Ay}^{2} + p_{Bz}^{2} - p_{Az}^{2}}{{p_{B} - p_{A}}}} & (65) \end{matrix}$

The centre and the radius of the circle of intersection still need to be determined From FIG. 80, the centre of the circle cc is at a certain distance from point P_(A) along vector c_(n) as shown in Equation 66 below:

c _(c) =p _(A) +t{right arrow over (c _(n))}  (66)

where t is a variable used to scale vector c_(n).

Substituting the components of c_(c) for the values of x, y and z in Equation 63 produces equation 67 below:

c _(nx)(p _(Ax) +t·c _(nx))+c _(ny)(p _(Ay) +t·c _(ny))+c _(nz)(p _(Az) +t·c _(nz))=c _(d)  (67)

and solving for t leads to Equation 68 below:

$\begin{matrix} {t = \frac{c_{d} - {c_{nx}p_{Ax}} - {c_{ny}p_{Ay}} - {c_{nz}p_{Az}}}{c_{nx}^{2} + c_{ny}^{2} + c_{nz}^{2}}} & (68) \end{matrix}$

The radius of the circle of intersection is determined by drawing a line between point pA and one of the intersection points between the two spheres as seen in FIG. 80. The length of this line is known, l_(mb), and the resulting triangle can be solved using Pythagoras' theorem, thus the radius of the circle c_(r) is shown in Equation 69 below:

c _(r)=√{square root over (l _(mb) ²−(t·c _(n))²)}  (69)

It is now possible to determine the point of intersection between the circle of intersection of the two spheres and the model surface. This is done by finding the line of intersection between the circle plane and an element plane. Since the sought coordinates of the yarn crossover are unknown at this stage, the element on which the crossover point lies is also unknown. The software should iterate through the elements of the model and determine the intersection of the circle with each element plane. Since the element list can be quite large, only a subset of elements which lie, in part or in whole, in a region called the brick space and defined around the circle of intersection are included in the iteration. The use of the brick space decreases the time needed for the software to simulate the draping of a textile considerably. The brick space, shown in FIG. 81, is a cube centered around the centre of the circle of intersection with length, width and height 10% larger than the radius of the circle, 1.1c_(r).

The brick space is defined by maximum and minimum values for x, y and z, noted as b_(xmax), b_(xmin), b_(ymax), b_(ymin), b_(zmax) and b_(zmin) found with Equations 70, 71, 72, 73, 74 and 75 below:

b _(xmax) =c _(cx)+1.1c _(y)  (70)

b _(min) =c _(cx)−1.1c _(y)  (71)

b _(ymax) =c _(cy)+1.1c _(y)  (72)

b _(ymin) =c _(cy)−1.1c _(y)  (73)

b _(zmax) =c _(cz)+1.1c _(y)  (74)

b _(zmin) =c _(ca)|1.1c _(y)  (75)

Any given element lies within the brick space if it fulfills a minimum of one requirement for each direction x, y and z. Nine requirements exists for each direction and it is not necessary that the same requirement is met for x, y and z. The requirements for the x direction are given by Equations 76, 77, 78, 79, 80, 81, 82, 83 and 84 below:

b _(xmin) ≦n _(1x) ≦b _(xmax)  (76)

b _(xmin) ≦n _(1x) ≦b _(xmax)  (77)

b _(xmin) ≦n _(3x) ≦b _(xmax)  (78)

n _(1x) ≦b _(xmin) and n _(2x) ≧b _(xmax)  (79)

n _(2x) ≦b _(xmin) and n _(1x) ≧b _(max)  (80)

n _(1x) ≦b _(xmin) and n _(3x) ≧b _(xmax)  (81)

n _(3x) ≦b _(xmin) and n _(1x) ≧b _(xmax)  (82)

n _(2x) ≦b _(xmin) and n _(3x) ≧b _(xmax)  (83)

The requirements for y and z are identical to the requirements for x, but expressed in terms of y and z components, respectively. Equations 76, 77 and 78 ensure that elements represented in the left-hand side of FIG. 82 are included in the brick space while Equations 79, 80, 81, 82, 83 and 84 ensure that elements represented in the right-hand side of FIG. 82 are included in the brick space.

Once the list of elements within the brick space is compiled it is possible to iterate through the list to find the line of intersection, shown as a dashed line in FIG. 83, between the plane of an element and the plane of the circle of intersection. The element is represented by solid lines in FIG. 83.

The equation of the element plane is Equation 85 below:

e _(nx) x+e _(ny) y+e _(nz) z=e _(d)  (85)

where e_(nx), e_(ny) and e_(nz) are the components of the vector normal to the element plane e_(n), determined earlier in pre-processing. The value of e_(d) is determined via the dot product of vector e_(n) and a point on the element plane, n₁ as shown in Equation 86 below:

e _(d) =e _(nx) n _(1x) +e _(ny) n _(1y) +e _(nz) n _(1z)  (86)

Finally, the intersection of the planes can be found as both equations are fully defined. The intersection of the planes is a line defined by [68] as shown in Equation 87 below:

(x,y,z)=c ₁{right arrow over (c _(n))}+c ₂{right arrow over (e _(n))}+u({right arrow over (c _(n))}×{right arrow over (e _(n))})  (87)

where c₁ and c₂ are constants that need to be determined and u is a parametric variable. Taking the dot product of Equation 87 with the vectors c_(n) and e_(n) yields equations 88 and 89 below [68]:

{right arrow over (c _(n))}(x,y,z)=c ₁{right arrow over (c _(n))}·{right arrow over (c _(n))}+c ₂{right arrow over (c _(n))}·{right arrow over (e _(n))}  (88)

{right arrow over (e _(n))}(x,y,z)=c ₁{right arrow over (c _(n))}·{right arrow over (e _(n))}+c ₂{right arrow over (e _(n))}·{right arrow over (e _(n))}  (89)

The left-hand side of Equations 88 and 89 is substituted by cd and ed, respectively. Solving for C₁ and c₂ yields Equations 90 and 91 below [68]:

$\begin{matrix} {c_{1} = \frac{{c_{d}{\overset{\_}{e_{n}} \cdot \overset{\_}{e_{n}}}} - {e_{d}{\overset{\_}{c_{n}} \cdot \overset{\_}{e_{n}}}}}{{\left( {\overset{\_}{c_{n}} \cdot \overset{\_}{c_{n}}} \right)\left( {\overset{\_}{e_{n}} \cdot \overset{\_}{e_{n}}} \right)} - \left( {\overset{\_}{c_{n}} \cdot \overset{\_}{e_{n}}} \right)^{2}}} & (90) \\ {c_{2} = \frac{{e_{d}{\overset{\_}{c_{n}} \cdot \overset{\_}{c_{n}}}} - {c_{d}{\overset{\_}{c_{n}} \cdot \overset{\_}{e_{n}}}}}{{\left( {\overset{\_}{c_{n}} \cdot \overset{\_}{c_{n}}} \right)\left( {\overset{\_}{e_{n}} \cdot \overset{\_}{e_{n}}} \right)} - \left( {\overset{\_}{c_{n}} \cdot \overset{\_}{e_{n}}} \right)^{2}}} & (91) \end{matrix}$

A point on the line can be found by substituting the values c_(i) and c₂ into Equation 87 and setting u as 1 yields the Equation 92 below:

p _(l) =c ₁{right arrow over (c _(n))}+c ₂{right arrow over (e _(n))}+({right arrow over (c _(n))}×{right arrow over (e _(n))}  (92)

This point, as well as the direction vector c_(n)×e_(n) of the line of intersection are used to determine if the line intersects the element or passes next to it.

The element shown in FIG. 83 lies in the path of the line of intersection but this is not always the case. The line of intersection may or may not intersect the element, as shown in FIG. 84.

To determine how many intersections exist the software should look for an intersection between the line of intersection and each of the three element edges, in a manner similar to what is described above by equating the equation of the two lines, using the edge between nodes n₁ and n₂ as an example, Equation 93 below may be used:

n ₁+{right arrow over (n ₁ n ₂)}·v _(i) =p _(l)+({right arrow over (c _(n))}×{right arrow over (e _(n))})·w _(i)  (93)

The same precautions are taken to limit errors caused by floating point arithmetic and divisions by zero as described above. The value of v_(i) is found using the same algorithm detailed in FIG. 62. If the value of v_(i) is between 0 and 1 inclusively the point of intersection lies on the element edge; the point of intersection bound₁ between the line of intersection and the element edge between nodes n₁ and n₂ is given by Equation 94 below:

bound₁ =n ₁+{right arrow over (n ₁ n ₂)}·v _(i)  (94)

Should a second point of intersection be found, on a different element edge, it is labelled as bound₂. The intersections represent the boundaries on the element between which the coordinates for the yarn crossover point may be. However, the correct solution for the yarn crossover location will not necessarily be on or within the boundaries of an element for which boundary values were found, as seen in FIG. 85.

For this reason, a criterion should be developed to compare the various possible solutions which arise from the intersections between the line of intersection and element edges determined during the iteration of the brick space. The criterion is dependent on the number of boundaries which was found for a given element and circle plane intersection.

When no intersections are found between the line of intersection and any of the element edges, the location of the yarn crossover does not lie on the given element and the software does not store the location of a possible solution for this element.

When only one point of intersection between the line of intersection and the element edges is found, the resulting possible solution for the location of the yarn crossover is the intersection itself, bound₁. However, this point of intersection, shown as a dot in FIG. 86, is not necessarily the position of the true yarn crossover location, shown as a cross.

The distance t_(r) between bound₁ and the centre c_(c) of the circle of intersection between the two spheres centered on p_(A) and p_(B) is used to determine the criterion used to compare the possible solutions as shown in Equation 95 below:

t _(r) =∥c _(c)−bound₁∥  (95)

To remove possible solutions which are not suitable for use as the yarn crossover location, the test radius t_(r) and the actual radius c_(r) should be within an allowable range shown in the Inequality 96 below:

$\begin{matrix} {\frac{{t_{r} - c_{r}}}{c_{r}} < 0.001} & (96) \end{matrix}$

The value of 0.001 was determined by running several simulations and selecting the strictest allowance which would not lead to the correct yarn crossover position being discarded. The result of the left-hand side of Inequality 96, used as the value for the criterion to determine the best solution, is stored along with the coordinates of the possible solution.

When two intersections between the line of intersection and the element edges are found, up to two possible solutions for the yarn crossover location may exist for this element; these possible solutions do not lie at the location of the intersections, bound₁ and bound₂. The possible solutions, shown as lozenges in FIG. 87, lie at the intersection(s) between the circle of intersection and the line defined by the two boundaries, which is identical to the line of intersection between the circle plane and the element plane.

The parametric equation of the line defined by bound₁ and bound₂ is Equation 97 below:

(x,y,z)=bound₁+μ(bound₂−bound₁)  (97)

where μ is a parametric variable. The equation of a sphere with the same centre and radius as the circle of intersection is used is Equation 98 below:

(x−c _(cx))²+(y−c _(cy))²+(z−c _(cz))² =c _(r) ²  (98)

A sphere with the same radius and centre as the circle of intersection is used instead of the circle of intersection. Using a sphere instead of a circle will lead to the same result as the circle and the line defined by the boundaries are coplanar, as seen in FIG. 85 and FIG. 87. Substituting Equation 97 into Equation 98 yields Equation 99 below [69]:

aμ ² +bμ+c=0  (99)

were a, b and c are found by Equations 100, 101 and 102 below [69]:

a=(bound_(2x)−bound_(1x))²+(bound_(2y)−bound_(1y))²+(bound_(2z)−bound_(1z))²  (100)

b=2[(bound_(2x)−bound_(1x))(bound_(1x) −c _(cx))+(bound_(2y)−bound_(1y))(bound_(1y) −c _(xy))+(bound_(2z)−bound_(1z))(bound_(1z) −c _(cz))]  (101)

c=c _(cx) ² +c _(cy) ² +c _(cz) ²+bound_(1x) ²+bound_(1y) ²+bound_(1z) ²−2(c _(cx)bound_(1x) +c _(cy)bound_(1y) +c _(cz)bound_(1z))−c _(x) ²  (102)

The determinant of Equation 99 is used to determine if the sphere and line intersect in 0, 1 or 2 points, as seen in FIG. 88, which will yield 0, 1 or 2 possible solutions, respectively.

The determinant is given by Equation 103 below:

det=b ²−1ac  (103)

If the value of the determinant is under 0, equal to 0 or above 0 there will be no, one or two possible solutions, respectively. When possible solutions exist their location is based on the value(s) of μ, found by Equation 104 below:

$\begin{matrix} {\mu_{1,2} = \frac{{- b} \pm \sqrt{b^{2} - {4\; {ac}}}}{2\; a}} & (104) \end{matrix}$

When one possible solution exists, both values of μ are identical and the possible solution p_(s1) is found with the Equation 105 below:

p _(s1)=bound₁+μ(bound₂−bound₁)  (105)

The distance between psi and the centre of the circle c_(c) is compared to c_(r) as in Equations 95 and 96. If the distance between psi and cc is not in the allowable range, the possible solution is discarded. If two possible solutions exist, two distinct values of μ exist, found by Equation 104. The coordinates of the possible solution based on μ₁ are found by the Equation 106 below:

p _(s1)=bound₁+μ₁(bound₂−bound₁)  (106)

Once again the distance between psi and cc should be checked against the radius of the circle using Equations 95 and 96. If the distance is in the allowable range p_(s1) is kept as a possible solution. It is possible that the value of p_(s1) lies outside of the element boundaries, such as p_(s1) at the left of FIG. 88 or the left most possible solution (lozenge) in FIG. 87. Possible solutions that do not lie on the do not necessarily lie on the surface of the model. Therefore, it is necessary to adjust the criterion used to determine the best solution for these possible solutions. The value of μ₁ and μ₂ determine if p_(s1) and p_(s2) are within the boundaries or not, respectively. For values of μ₁ or μ₂ above 1, the distance from the bound d_(b) is (using μ₁ for demonstration) shown in Equation 107 below:

d _(b)=∥[bound₁+μ₁(bound₂−bound₁)]−bound₂∥  (107)

For values of μ₁ or μ₂ under 0, d_(b) is shown in Equation 108 below:

d _(b)=∥[bound₂+μ₁(bound₂−bound₁)]−bound₁∥  (108)

For values of μ₁ or μ₂ between 0 and 1 inclusively, d_(b) is set to 0. The criterion used to determine the best solution is the sum of d_(b) and the result of the left-hand side of the Inequality 96.

Once the processes of finding the line of intersection between each element in the brick space and the circle plane and determining the intersection of this line of intersection and the elements edges is completed, the software determines the best solution from the list of possible solutions which are compiled as described above. The best solution is determined by iterating through the list of possible solutions and selecting the possible solution which has the lowest value for the comparison criterion and which does not create a concave drape element. It is possible, using variable-length textiles, that the possible solution for a yarn crossover point leads to a concave drape element, as shown on the right-hand side of FIG. 89. The drape element is defined as the polygon created by points p_(O), p_(A), p_(B) and the yarn crossover to be found.

Concave drape elements are unacceptable for use in draping simulations as they would induce very large deformations within the yarns, deformations which are impossible for the yarns to conform to. The convexity check also ensures that the point p_(O) is not selected as the yarn crossover position, as it will be one of the possible solutions when using constant-length textiles, and may be a possible solution when using variable-length textiles. To determine if a drape element is concave or convex, it is separated into two triangles as shown in FIG. 90.

The vectors t_(n1) and t_(n2) normal to the planes of the triangles are found with the Equations 109 and 110 below:

{right arrow over (t _(n1))}={right arrow over (p _(B) p _(A))}×{right arrow over (p _(B) p _(O))}  (109)

{right arrow over (t _(n1))}={right arrow over (p _(B) p _(A))}×{right arrow over (p _(B) p _(z))}  (110)

The vectors normal to the planes of the triangles point in opposite directions if the triangles are coplanar, yielding an angle of 180° between t_(n1) and t_(n2). This angle θ_(c) is determined by the Equation 111 below:

$\begin{matrix} {\theta_{c} = {\arccos \left( \frac{\overset{\_}{t_{n\; 1}} \cdot \overset{\_}{t_{n\; 2}}}{{\overset{\_}{t_{n\; 1}}} \cdot {\overset{\_}{t_{n\; 2}}}} \right)}} & (111) \end{matrix}$

To limit computational errors within the software, the computation of the arccosine of any value below −0.98 is bypassed, the result of which is set to 180°. Similarly, the computation of the arccosine of any value above 0.98 is bypassed, the result of which is set to 0°. The computation of arccosine is bypassed for values nearing 1 and −1 due to the possibility of floating point arithmetic errors modifying a number such as 0.99 to 1.01. The arccosine of values equal to or above 1 and values equal to or below −1 is undefined, causing the software to issue an error. A drape element with a value of θ_(c) between 60° and 180° is considered convex; the two limit conditions are shown in FIG. 91.

An angle of 60° was chosen as it represents a higher level of bend than that to which a textile would be realistically subjected.

Once the best possible solution is found, the in-plane shear angle is determined to ensure that it is not below the user-defined minimum in-plane shear angle θ_(min). If the in-plane shear angle is below the user-defined minimum this portion of the mesh cannot be draped as out-of-plane deformations may occur since the textile has reached its locking angle as described above. While the in-plane shear angle is simple to determine in constant-length textiles, the use of variable-length textiles complicates the matter. The left-hand side and right-hand side of FIG. 92 show the various angles between yarn directions found in constant and variable-length textiles, respectively.

The angles in constant-length textiles are dependent on each other as shown in the Equation 112 below:

α₂=90 −α₁  (112)

therefore the in-plane shear angle is easily determined. The angles in variable-length textiles are independent of each other, the only restriction being that their sum should equal 360°. In embodiment, the method of the present invention determines the in-plane shear angle β_(shear) of variable-length textiles is to take the average of all four angles. However, it is important to note that an angle of 80° involves the same amount of in-plane shear as an angle of 100°, therefore the average of the absolute values of the differences between the angles and 90° is taken as shown in Equation 113 below:

$\begin{matrix} {\beta_{shear} = {{- \left( \frac{{{90 - \beta_{1}}} + {{90 - \beta_{2}}} + {{90 - \beta_{3}}} + 90 - \beta_{4}}{4} \right)} + 90}} & (113) \end{matrix}$

to which 90° is added. The angles β₁, β₂, β₃ and β₄ are found using an equation similar to Equation 111, using the vectors of the two lines which form the angle, for example using vectors p_(o)p_(A) and p_(o)p_(B) to find fiy. The average of the differences is made negative before adding 90° for β_(shear) to remain equal to or lower than 90°. As the software does not discriminate between constant and variable-length textiles, the value of β_(shear) is calculated in the same manner for constant-length textiles. Additionally, special care should be taken as the drape element may be bent as in FIG. 91, which will greatly change the values of β₂ and β₄. These values are calculated by taking the sum of the angles β_(2a) and β_(2b), and β_(4a) and β_(4b), as shown in FIG. 93.

While βshear is used to determine the in-plane shear of the drape element, each angle, β₁, β₂, β₃ and β₄, should be above the user specified angle θ_(min) for the software to accept the possible solution as the yarn crossover location. When a yarn crossover point satisfies every condition, it is stored to array and the flag indicating that it has been meshed is set to true.

If the best possible solution does not satisfy the in-plane shear angle restrictions no yarn crossover point is stored; it is then concluded that this crossover cannot be draped with the current yarn spacings and the yarn spacings are modified to match the previous yarn crossover's yarn spacings. This is done to prevent large changes within the yarn spacings which result in portions of the mesh to not be draped. For example, the yarn crossover shown as an X in FIG. 94 could not be draped as the in-plane shear angles exceed the limit, therefore the values of the yarn spacings for the lines labelled as 3 and 4 in FIG. 94 are given the same values as the yarn spacings for the lines labelled 1 and 2, respectively. In some cases, this modification may enable the yarn crossover to be draped in a subsequent iteration or trial.

The process of changing the yarn spacings is transparent to the user and occurs almost exclusively in variable-length textiles during optimisation, therefore simulations of constant-length textiles are unaffected.

When the location of a yarn crossover is determined, the surface area of the drape element is calculated for the software to display the total surface area covered by the textile after a draping simulation and for optimisation purposes, described below. The surface area of the drape element Ap is determined by the sum of the area of the two triangles seen in FIG. 93, calculated using Heron's formula as shown in Equation 114 below [70]:

$\begin{matrix} {A_{p} = {\sqrt{{s_{1}\left( {s_{1} - {{p_{O} - p_{A}}}} \right)}\left( {s_{1} - {{p_{O} - p_{B}}}} \right)\left( {s_{1} - {{p_{A} - p_{B}}}} \right)} + \sqrt{{s_{2}\left( {s_{2} - {{p_{s} - p_{A}}}} \right)}\left( {s_{2} - {{p_{s} - p_{B}}}} \right)\left( {s_{2} - {{p_{A} - p_{B}}}} \right)}}} & (114) \end{matrix}$

where s₁ and s₂ are determined by Equations 115 and 116 below:

$\begin{matrix} {s_{1} = \frac{{{p_{O} - p_{A}}} + {{p_{O} - p_{B}}} + {{p_{A} - p_{B}}}}{2}} & (115) \\ {s_{2} = \frac{{{p_{s} - p_{A}}} + {{p_{s} - p_{B}}} + {{p_{A} - p_{B}}}}{2}} & (116) \end{matrix}$

The software follows a specific sequence for creating the mesh used to simulate the draping of a textile reinforcement. The geodesics are meshed first as described above, followed by the area between the geodesics in the order described in FIG. 95.

Each quadrant is draped separately as they are independent of each other due to the fixed geodesics. In addition, the pattern observed for each quadrant has no effect on the outcome of the draping simulation as long as the three dependant yarn crossovers needed to mesh a given crossover have been previously determined. The complete algorithm for finding the yarn crossover locations between the geodesics can be seen in FIG. 96 and FIG. 97.

The algorithm ends when the user-defined amount of yarn crossovers to mesh is reached.

Once the draping simulation is complete, the model as well as the mesh representing the draped textile reinforcement can be viewed in the OpenGL window as seen in FIG. 98.

The simulation shown in FIG. 98 was performed on 6 cm radius sphere using a constant yarn spacing of 5 mm and θ_(min) of 60°. The software may overlay a colour map representing the distribution of the in-plane angle β_(shear), FIG. 99, or the fibre volume fraction v_(f) across the simulated textile, FIG. 100.

The value attributed to each colour can be seen in the legend on the left of FIG. 99. The upper and lower thresholds of the legend can be modified via the GUI to provide flexibility in the display. The gradient between the upper and lower thresholds is equally spaced and varies automatically based on the selected threshold values.

Again in FIG. 100, the legend for the v_(f) colour map is shown on the left and the thresholds can be modified via the GUI. The values of v_(f) are calculated based on the area occupied by each drape element, as calculating v_(f) based on in-plane shear angle may be inaccurate for variable-length textiles. A reference value for the volume fraction v_(fr) should be defined for a known reference area A_(r) via the GUI; in FIG. 100 a v_(fr) of 0.6 was defined for an area A_(r) of 25 mm² corresponding, for this example, to an undeformed drape element with 5 mm spacing. The v_(f) for each individual drape element is found with Equation 117 below:

$\begin{matrix} {v_{f} = \frac{A_{r} \cdot v_{fr}}{A_{p}}} & (117) \end{matrix}$

where A_(r) is the area occupied by the drape element; constant thickness is assumed. Finally, yarn spacings can be colour-coded in cases of variable-length textiles as shown in FIG. 101.

Similarly to the in-plane shear angle and volume fraction representations, the software provides a legend for yarn spacings with thresholds that can be modified via the GUI.

While the simulation of the draping of textiles onto the surfaces of a model is the main purpose of the software, additional functionality was incorporated into the software to further assist in the design of PMC components. Simulations may be saved at any stage of the draping process; from models with no start point defined to simulations on which draping and optimising has been completed. The save and load feature is available from the GUI and uses a specific file type .dparam, detailed in Appendix A, which contains all the parameters used in creating simulations. The yarn spacings are stored in separate text files which are named in accordance with the name given to the .dparam file upon saving. It is also possible to create multiple meshes on the same model as shown in FIG. 102, for simulating the draping of models that require multiple pieces of textile.

In addition to multiple meshes, it is possible to specify limited zones to be draped on the model, referred to as patches, and limit the draping simulation to these patches as shown in FIG. 103. When draping over a surface limited by a patch, elements outside of the patch cannot be selected as the next element for a geodesic nor included within the brick space, therefore the creation of geodesics and the creation of the mesh is effectively halted when the next element on which the geodesic or mesh would progress is not part of the patch.

The elements within the patch can be highlighted in green as seen in FIG. 103; this function can be toggled in the GUI. In cases where multiple patches are present, an active patch should be selected and is shown in vivid green; the active patch is the only patch considered when simulating the draping of a textile. Patches which are not active are shown in a darker shade of green. The patches may be created manually by creating a list of elements in the .model file. They may also be created via the GUI; when the software is in patch creation mode, elements not already in the patch being created and under the mouse cursor turn red as seen in FIG. 104. At this point pressing the “enter” key adds the currently selected element to the patch list. Elements within the patch are seen in blue and remain blue when under the mouse cursor. Pressing the “enter” key while over a blue element removes it from the patch being created.

The patch creation process ends by saving a .txt file with a chosen name containing the numbers of the elements within the patch.

Draping with multiple pieces of textile requires that each piece be held in place during the manufacturing process; the software includes three features which help the PMC designer in planning for the manufacturing of the component. One of these features is the ability to display portions of the simulated drape that may not remain on the surface of the model due to gravity. 132 Portions of the mesh which face downward relative to the gravity vector, defined using the GUI, are shown in red while other elements are shown in yellow as seen in FIG. 105.

The second feature included for facilitating planning for manufacturing is the ability to add magnets as seen in FIG. 106. In the software the magnets act only as visual cues for planning the manual layup of one or multiple pieces of textile reinforcement. The use of magnets as tools to temporarily affix textiles to a mould is detailed in an undergraduate according to one embodiment of the present invention report written by James Cowan [71]. The functional restraining and facilitating of the draping provided by the magnets has not been implemented in the software at the time of writing.

Another feature incorporated into the software is a verification to ensure that the textile can be laid fat. While constant-length textiles can always be laid flat, it is essential to verify that variable-length textiles can exist in the flat state, as they are manufactured in the flat state. The question is not trivial as the geometry of the textile and the optimisation of the lengths are done in the draped state, on the geometry. Some variable-length textiles optimised in the draped state may not be feasible flat as the in-plane shear limit may be exceeded. To determine if a certain textile can be made flat, the yarn spacing data is used to simulate the draping of the textile onto a flat plate. Then, the software compares yarn crossovers from drape simulations on the model and on the flat surface; yarn crossovers which do not exist in both simulations are discarded. Yarn crossover that do not appear in the simulation performed on the model cannot be draped, and crossovers that do not appear in the simulation performed on the flat surface cannot be manufactured. In addition, the loading feature of the software discussed earlier can be used to load any saved simulation or optimisation on a flat surface to visualise the shape of the textile to be manufactured, before draping is performed. The net shape of the textile seen in FIG. 101 is shown in FIG. 107 as draped onto a flat surface. It is important to note that a large portion of the textile can no longer be seen as the in-plane shear angle of the missing sections is under the set limit of 60°, in this case.

The objective behind variable-length textiles is to custom-tailor the yarn paths towards a specific application and geometry. The benefits include a greater surface area covered by a single piece of textile, less in-plane shear in the draped state, and fibre orientations that are potentially better aligned towards specific design requirements, say for load carrying for example. The benefits are quantified by the use of a parameter, defined in a later section, which needs to be maximised. The optimisation or improvement of the textile is achieved by varying the distance between adjacent yarns across the textile. The distance between adjacent yarns, referred to as the yarn spacing, is measured between the yarn crossovers as shown in FIG. 108 where the yarns are represented by solid lines.

The changes to the yarn spacings can be made manually or can be made by the software, using optimisation algorithms. Several textile optimisations, described below, have been performed. Additionally, the machinery to manufacture variable-length textiles as well as sample variable-length textiles were fabricated in a parallel research project. The manufactured textiles are described below.

The manual optimisation of a textile reinforcement is accomplished by making changes to the yarn spacing array, described above, directly in the draping software or through software such as Excel™. When using Excel™ to change values in the yarn spacing array it is possible to define formulas or relations between yarn spacings. However, it is necessary to load the modified yarn spacing array for the changes to be seen in the draping software. In contrast, modifications to the yarn spacing array made within the draping software are reflected instantly. When using the draping software to modify the yarn spacings, the user should move the marker seen as a black dot in FIG. 109 to the desired location, and modify the yarn spacing. This method, albeit tedious, combined with the use of Excel™ based modifications can be used where automated optimisation fails to provide the desired results.

The draping software may be used to optimise a textile, relying on an algorithm based on the evolution strategy optimisation method and resembling the (1+1)-ES strategy described in section 2.6. The textile is modified by changing the value of the yarn spacing at a single location on the draped textile, effectively altering the configuration of the yarn spacings of the textile. This location, as well as the magnitude of the change to the yarn spacing is based on a random number supplied by a pseudo-random number generator, ran2 [72]. Both the location of the yarn spacing and the magnitude of the change are limited by certain parameters discussed in the following section. The decision to keep or discard the modified configuration is based on the fitness levels of the original and modified configurations. The fitness level corresponds to the value of a parameter being maximised, discussed in a later section, which is determined upon draping the textile. Should the new, altered configuration result in an increase in the value of the parameter being maximised, the new configuration is kept and the original configuration discarded. Should the new configuration result in a decrease in the value of the parameter being maximised, the original configuration is kept and the new configuration is discarded. The decision to keep or discard the new configuration completes one iteration of the optimisation process, for which the algorithm is shown in FIG. 110.

Several parameters need to be defined to ensure that optimisations are carried out efficiently and that their results lead to textiles that can be manufactured. The first parameters are the maximum and minimum allowable yarn spacings, which define the range of yarn spacings permitted for a particular optimisation. As the yarn spacing is increased the space available to each yarn increases, but this may reduce the fibre volume fraction. If the yarn spacing is decreased the fibre volume fraction will increase but the yarns may deform out-of-plane if forced to occupy a space that is too constrained. Ideally, the maximum and minimum values are relatively similar to the initial yarn spacing, defined as the yarn spacing of the non-optimised constant-length textile on which the optimisation is performed. For example, if the initial yarn spacing is 4 mm, the maximum and minimum values could be 5 mm and 3 mm, respectively. The value of the initial yarn spacing is dependent on the width of the yarn and should be correctly sized to allow for a constant-length textile manufactured using the initial yarn spacing to have a proper value for the fibre volume fraction, say 60%. Failure to specify maximum and minimum yarn spacings may lead to textiles with very large yarn spacings in certain areas and very small yarn spacings in other areas, as shown in FIG. 111.

The next parameter is the maximum amount of change to the value of the yarn spacing which can occur in one iteration. This prevents the optimisation from making large modifications and provides for a higher level of consistency in yarn spacings over the surface of the textile. The maximum amount of change to the yarn spacing used in the optimisations described below range from 1% to 3% of the initial yarn spacing. Smaller changes to the configuration of the yarn spacings may slow down the optimisation process. However, the benefits greatly outweigh the loss in optimisation speed.

To further illustrate the advantages that may be gained by limiting the amount of change to the value of the yarn spacing which can occur in one iteration, two sets of optimisations are performed, one with a limit of 0.1 mm and one with a limit of 0.01 mm. All other parameters, such as the initial yarn spacing of 4 mm, are identical in both sets of optimisations.

The optimisations performed with a limit of 0.01 mm are much more uniform than the optimisations performed with a limit of 0.1 mm. In addition, the average increase of the surface area obtained by optimising the textile is 22.67% for the optimisations with the 0.01 mm limit and 13.81% for the optimisations with the 0.1 mm limit. The standard deviation for the optimisations with limits set at 0.01 mm and 0.1 mm are 0.53 mm² and 4.29 mm², respectively.

Another parameter used to limit non-uniformity and abrupt changes in the draped variable-length textile is the minimum percentage of similarity required between the values of the yarn spacing of neighbouring yarn segments along the same fibre orientation. The yarn segments involved in the similarity check for the yarn spacings in the a direction can be seen in FIG. 112, where the size of the yarn spacing of the segment shown as a dotted line should be within a certain percentage from the size of the yarn spacings shown as dashed lines.

The value of the parameter for the minimum percentage of similarity should be below 100% as no variation in the yarn spacing would be permitted with a minimum similarity of 100%. Additionally, a value of say 95% for the minimum percentage of similarity for neighbouring yarn spacings means that a given yarn spacing should be within a range of 95% to 105% from the value of the neighbouring yarn spacings. To illustrate the advantages of using a high value for the minimum similarity parameter, five different values of the parameter were compared on four different optimisation scenarios. Four optimisations were performed for each combination of the minimum similarity parameter and optimisation scenario, the average results of which can be seen in FIG. 113. The value of the surface area shown in FIG. 113 is the surface area of the portion of the textile which can be manufactured, following the removal of the portions which cannot be manufactured. It is clear that optimisations performed with a higher value for the minimum similarity parameter yield an optimised textile which covers a greater surface area.

The parameters defined above may effectively limit the textile from becoming non uniform and unsuitable for use in PMC manufacture. However, they do not guarantee that the textile will necessarily be manufacturable flat. When optimising, it is possible to select whether or not the software will perform a verification at each iteration to determine which sections of the textile cannot be manufactured, using the method described above. While valid changes to the textile configuration may be discarded as a result of a possible reduction in the value of the parameter to maximise stemming from the loss of yarn crossovers, the verification ensures that the results of the optimisation process may be used in practice.

The final optimisation parameter is the steady state criterion ss_(c). This criterion is a threshold used for determining whether a given optimisation process has reached a steady state condition. Steady state checks only occur after the completion of a number of iterations Ni, the value of which is based on the amount of yarn crossovers N_(m) that can be successfully draped on the model. The value of Ni is the amount of iterations needed for the cumulative probability of each yarn spacing being selected for modification at least once to approach unity, and is determined using Equation 118 below:

$\begin{matrix} {N_{i} = {\sum\limits_{i = 1}^{2\; N_{m}}\; \frac{2\; N_{m}}{i}}} & (118) \end{matrix}$

where Nm is multiplied by two to account for yarn spacings in both fibre directions a and b. When sufficient iterations have been completed the steady state check is performed with Equation 119 below:

$\begin{matrix} {{ss}_{i} = {\frac{P_{i} - P_{avg}}{P_{i}} \cdot 100}} & (119) \end{matrix}$

where P_(i) is the current value of the parameter to maximise and P_(avg) is a moving average of the value P_(i) for the last Ni iterations. If ss_(i) is lower than the value of ss_(c) the optimisation process is stopped as it is considered to have reached a steady state condition; the user is notified of this by the GUI.

The software may optimise a given textile for one or a combination of many parameters including the surface area, in-plane shear angle, fibre volume fraction and fibre orientation. The value of the selected parameter is calculated for each drape element forming the mesh simulating the draping of a textile; the values can be summed or averaged depending on the selected parameter to maximise. A major motivator for the optimisation of textiles is covering a larger surface area with a single piece of textile. Therefore, the first parameter to maximise is the surface area covered by the draped textile. As the optimisation progresses, only new configurations which lead to a larger surface area are retained. While simple, this method often leads to unchecked growth in certain portions of the mesh, resulting in shapes such as seen in FIG. 114 where the textile has merely expanded to cover more area in the sections closer to the base of the hemisphere. It is important to note that optimisations which maximise the surface area are very dependent on the initial and maximum yarn spacings; if the initial and maximum yarn spacings are identical, the risk of having drape elements expand to cover a larger surface area is minimised or eliminated.

A textile reinforcement cannot be draped over a large area on complex surfaces due to limits in the amount of deformation, namely in-plane shear, which can be applied to that textile before out-of-plane deformation occurs. For this reason, it is possible to optimise the textile for minimising in-plane shear in the textile. The simplest method consists in maximising the sum of in-plane shear angles for the drape elements within the draped textile. For purposes of the present description, a high in-plane shear angle corresponds to low in-plane shear in the textile, as described above. Therefore, maximising the sum of in-plane shear angles leads to lower in-plane shear in the textile. It is important to note that additional drape elements will increase the value of the sum of in-plane shear angles; therefore, modifications which add new yarn crossovers are usually retained. However, optimisations done with in-plane shear as a parameter tend to limit the addition of new yarn crossovers and concentrate on minimising in-plane shear in existing portions of the mesh, as seen in FIG. 115.

It is also possible to optimise the textile to minimise the average in-plane shear angle, which is not affected by the amount of yarn crossovers in the textile.

To minimise the issues associated with using either the surface area or the in-plane shear angle as the sole parameter to maximise, a combined parameter was established where the product of in-plane shear and surface area is calculated for each drape element and summed over all the drape elements. Maximising the product of the surface area and in-plane shear angle offers a compromise between the two methods, as seen in FIG. 116.

Alternatively, it is also possible to maximise the sum of in-plane shear and surface area instead of the product. However, this leads to results which are very similar to maximising in-plane shear angle only as the value of the surface area for each drape element is much smaller than the value of the in-plane shear angle. For example, if the yarn spacing can vary between 3 mm and 5 mm the surface area ranges from 9 mm² to 25 mm² while the in-plane shear angle ranges from 60° to 90°, using a 60° in-plane shear limit.

A comparison of the parameters to maximise based on in-plane shear angle and surface area can be seen in Table 3, where five optimisations were performed for each parameter to maximise. The same model and identical parameters, except for the parameter to maximise, were used for the optimisations. The column describing the in-plane shear of the textile is based on visual inspection of the results; typical optimisations can be seen in FIG. 114, FIG. 115 and FIG. 116 for optimisations with the surface area, in-plane shear and the product of in-plane shear and surface area as the parameter to maximise, respectively.

TABLE 3 Comparison of the Parameters to Maximise Average Area Standard In-Plane Parameter to Maximise (cm²) Deviation (cm²) Shear Surface Area 66.23 0.89 Most In-Plane Shear 66.74 3.93 Least Surface Area * In-Plane Shear 68.45 1.80 Average Surface Area + In-Plane Shear 67.07 2.33 Least

It is also possible to use the fibre volume fraction in the parameter to maximise. In cases where a low variation of v_(f) over the surface is desired, it is possible to minimise the standard deviation of v_(f) across the textile. Alternatively it is possible to optimise a textile with the goal of achieving values of v_(f) across the textile which lie between maximum and minimum values of v_(f). The parameter to maximise based on an allowable range of v_(f) is given a value of 1 for the ideal v_(f), defined via the GUI, and a value of 0 for the maximum and minimum v_(f), also defined via the GUI. For other values of v_(f), the parameter to maximise is given a value based on linear interpolation between the ideal v_(f) and either the maximum or minimum value for v_(f); as shown in FIG. 117, where the relationship between v_(f) and the parameter to maximise is illustrated.

The final method of determining the parameter to maximise is based on fibre orientation. This optimisation is generally used in conjunction with a model that contains at least one patch for which a specific desired fibre orientation is defined, as seen in FIG. 118.

The parameter to maximise for drape elements within the patch is the value of the angle between the yarns and the specified fibre orientation. The specified fibre orientation is shown as a blue line in FIG. 118, defined using the GUI. Two angles φ₁ and φ₁ can be found, the first between vector p_(A)p_(s) and the specified fibre orientation, and the second between vector p_(A)p_(s) and the specified fibre orientation. Both vectors p_(A)p_(s) and p_(A)p_(s) are as shown in FIG. 90 while the equation used to find the value of the angle is similar to Equation 111. Once these angles are found, the sum of the absolute value of the difference between 90° and each angle is taken so as to obtain a value which is larger when the yarns and specified fibre orientation are aligned according to Equation 120 below:

φ_(=|)90−φ₁|+|90−φ₂|  (120)

This value of φ is used as the parameter to optimise. The behaviour in such cases of optimisation is the gradual alignment of yarns along the specified direction, within the area delimited by the patch, as shown in FIG. 118.

The software is capable of performing textile reinforcement optimisations following two different schemes. The optimisation may be performed over the entire surface of the simulated textile or it may be limited to a specific section which grows as the optimisation progresses. The schemes are referred to as static and progressive optimisation, respectively. In static optimisation, all of the yarn spacings between draped yarn crossovers are eligible to be modified at any given time, while in progressive optimisation only a portion of the simulated textile is draped and a only a portion of the yarn spacings between draped yarn crossovers can be modified. The initial section to be draped in a progressive optimisation is dependent on the initial size parameter, defined via the GUI. This parameter determines how many yarn crossovers can be draped along each geodesic. A non-optimised constant-length textile and the initial section of a progressive optimisation with an initial size of 5 can be seen on the left-hand side and the right-hand side of FIG. 119, respectively. For the example given only one quadrant is displayed; however, it is possible to perform a progressive optimisation on any number of quadrants.

The section of the textile for which changes to the yarn spacings are permitted is defined by the layer size, counted in yarn crossovers from the outermost draped yarn crossover. In the progressive optimisation shown in FIG. 120 the layer size is two, as shown by the two layers of yarn crossovers for which the yarn spacings have increased through optimisation to maximise the surface area.

The size of the section of the textile being draped grows by one layer when the initial section being optimised reaches steady state. The section of yarn spacings eligible to be modified is also modified when the portion of the textile grows. The layer size does not increase in terms of depth but moves along with the outer edge of the draped textile. The end result of the optimisation is shown in FIG. 121. The optimisation process ends when the final size of the draped textile is reached, defined via GUI along with the initial size parameter, or when the edge of the model or patch is reached. It is important to note that yarn spacings which were not eligible for modification in the initial section remain unchanged throughout the optimisation process.

To prevent sections of the textile from being locked at their original values, it is possible to set the layer size to a value equal to the initial size, or to define a layer size of zero which indicates that any yarn spacing between yarn crossovers that are currently draped are eligible for modification. To increase the speed of the progressive optimisation process, the yarn spacings of new layers added when the progressive optimisation reaches a steady state condition can be modified to match the values of the previous layer in a manner similar to what is described in FIG. 94. This feature is optional and may be activated when defining the optimisation parameters.

One embodiment of the draping software of the present invention is validated by comparing textile reinforcements that were draped onto moulds with results obtained from the simulation of the draping on a model of the same mould. Since the software does not account for variable resistance to in-plane shear, a plain woven fibreglass was used for validation work related to constant-length textiles. Validation of the software is performed on two different moulds, a hemisphere and a non-structural aerospace fairing.

A hemisphere was chosen as a first validation tool since it is doubly curved, thus forcing textiles draped onto to it to deform by in-plane shear. The model of the hemisphere is shown in FIG. 122 and the mould machined based on the model is shown in FIG. 123. The hemisphere has a radius of 7.5 cm and is mounted on a cylinder of the same radius with a height if 4 cm.

Initial validation may be performed by visual inspection of the draped textile and comparison with the simulation results. Examples of each appear on the left-hand side and the right-hand side of FIG. 124, respectively.

The lines seen on the draped fabric are aligned with the warp and weft yarns and were drawn at a 1 cm interval. The direction of the lines on the draped fabric appear to be very similar to the direction of the virtual yarns seen in the simulation. Additionally, the shape of the drape elements created by the intersecting lines are the same shape in the experiment and simulation. More accurate validation was done with the use of an Immersion MicroScribe G2X 3D coordinate measurement machine (CMM) which has a specified accuracy of 0.23 mm. The CMM is used to store the 3D position of intersections of the lines drawn on the textile. The CMM may be calibrated using points of reference on the mould as seen in FIG. 125, to ensure that the origin of the model used by the simulation is the same as the origin of the mould used for the laboratory drape.

The textile is handled carefully to ensure that no deformation occurs to it before the draping process is undertaken. While draping, it is important to position the start point of the drape accurately on the appropriate marking and to lay yarns along the geodesics as intended. The experimental draping for which CMM data was collected is shown in FIG. 126 where the arrows represent the geodesics, the intersection of which is the drape start point.

The coordinates of the intersections of the lines drawn on the textile were stored to file; this file can then be loaded as green dots into the draping software and superimposed over the simulation results as seen in FIG. 127.

A certain amount of manipulation, in the order of a few millimetres, to the parameters of the draping simulation is needed to ensure proper alignment between the start points and geodesics of the experimental trial and simulation. The start point of the drape for the simulation, intended to be at (x,y)=(7.5 cm, 7.5 cm) was adjusted to (x,y)=(7.399 cm, 7.702 cm). The misalignment is caused by the practical difficulty of placing the textile perfectly onto the drape start point marking of the hemisphere. When superimposed, it is clear that the software predicts the behaviour of the textile accurately as it is draped over the surface. However, the accuracy of the simulation tends to decrease as the amount of in-plane shear increases, as seen at the bottom tip of the simulation results in FIG. 127. As the in-plane shear of the textile increases, other deformation modes such as yarn slip occur which the software does not account for. Additionally, handling of the textile during the draping process is done by hand which may induce certain deformations that are not accounted for by the software. While the position of the CMM data does not align perfectly onto the results of the simulation, the direction of the yarns as well as the angles between intersecting yarns are almost identical; therefore the software did accurately simulate the draping of a textile onto the hemisphere. Consistency was verified by performing a validation trial over four quadrants of the hemisphere, using the same mould and model. The results of the four quadrant validation test superimposed onto the drape simulation, with start point (x,y)=(7.360 cm, 7.407 cm) and geodesic rotation of 5°, are shown in FIG. 128.

The results obtained from the two bottom quadrants correlate very well with the simulation while the two top quadrants show larger discrepancies between the experiment and simulation. The discrepancies in the top quadrants were attributed to likely movement of the draped textile during acquisition of the CMM data. The distances between the top geodesic and adjacent dots are inconsistent, pointing to the possibility of the textile having been moved inadvertently between the acquisition of the intersection locations on the geodesics, collected first, and the acquisition of the intersection locations between geodesics, collected last. Due to the satisfactory results obtained from both validation trials, this trial was not redone.

To further validate the draping software, an aerospace fairing mould is used for comparing results of experimental trials with predictions of the draping software. As with the hemisphere, quick visual inspection of the results offer promising results.

The simulation predicts that sections of the textile would exceed the in-plane shear limit, as shown by the absent drape elements on the simulation. When draping the textile onto the mould, the fabric deforms out-of-plane over the same sections as the locking angle of the textile has been exceeded. Again, a CMM was used to store the location of intersections of lines drawn onto the textile, which were then superimposed onto the simulation results generated by the software. The CMM was calibrated using points of reference on the mould surface to ensure alignment of the origins and axes of the mould and model.

The draping simulation is centered at (y,z)=(12.11 cm, 31.02 cm), chosen to ensure the CMM data coincides with the simulation results. The textile used for the simulation has a yarn spacing of 1 cm and 15 yarn crossovers were meshed in each direction. The CMM data of the experimental drape superimposed on the simulation results is shown in FIG. 129 and FIG. 130. To achieve a simulation which predicts out-of-plane deformation on the top right corner of the mould seen in FIG. 130, the in-plane shear limit of the simulation was set to 36°.

As with the validation performed on the hemisphere, the results of the experimental drape on the aerospace mould corresponds to those of the simulation in areas where in-plane shear is low and diverges somewhat from the simulation where high in-plane shear is observed. Again, this is due to limitations in the CMM precision, human error and manipulations made to the textile while draping which may introduce additional deformations. Also, the model of the mould which was supplied is slightly smaller than the mould as the model actually corresponds to the part made using the solid mould; therefore the experimental draping extends beyond the simulation, as seen on the left in FIG. 131. This may account for the greater discrepancies between the experimental draping and simulation which occur on the left-hand side of mould.

The optimisation process and software were used in designing several textiles to evaluate the effectiveness of the optimisation process. Optimisations performed aimed at maximising the surface area covered by a single piece of textile reinforcement or at modifying the fibre orientations to meet specific requirements. Both the models for the hemisphere and the aerospace mould were used in order to perform the optimisations.

The goal of this optimisation was to maximise the surface area covered by a single piece of textile on the hemisphere described previously. The optimisation was performed on one quadrant of the hemisphere as all quadrants are identical; the configuration of yarn spacings found for one quadrant can be copied over to complete the hemisphere. The non-optimised constant-length textile with a yarn spacing of 4 mm leads to a draped surface of 91.0 cm² shown in FIG. 132, before reaching the maximum value of in-plane shear set at 60°.

Several dozen attempts at optimising a textile for this model were done with good results attained from a progressive drape. The result of the progressive optimisation is shown in FIG. 133, with an area of 108.4 cm².

While a modest increase of 19% to the surface area was achieved, the progressive optimisation did not meet the objective of fully draping the hemisphere. A manual optimisation was performed with the goal of producing a textile that can drape lower along the hemisphere without reaching the maximum in-plane shear limit. The result of the manual optimisation is shown in FIG. 134, the surface area of which is 103.3 cm².

The surface area covered through manual optimisation is smaller than the surface area covered by the progressive optimisation; however, the lowest point draped on the manually optimised textile is lower than the lowest point draped on the textile resulting from the progressive optimisation. Depending on the situation, design and manufacturing options, either textile may be more desirable than the other. Once the optimisation was done, the manually optimised textile is manufactured. A pattern shown in FIG. 136, based on the optimised textile as it appears when laid flat as shown in FIG. 135, was used to align and stitch the textile.

The textile is manufactured by laying yarns between pins, shown in FIG. 137, that are placed at the location of the dots shown in FIG. 136, onto a paper template which is removed once the textile is stitched.

The manufactured textile appears in FIG. 138 as draped over the hemisphere mould. It should be noted that the textile covers the hemisphere better than the non-optimised textiles did, proving the effectiveness of the optimisation process and demonstrating that variable-length textiles can in fact be manufactured.

The goal of this optimisation was to maximise the surface area covered by a single piece of textile within a patch, on the aerospace mould. Again, the maximum in-plane shear angle for the textile is set at 60°.

Multiple optimisations using the software were attempted; as with the hemisphere a progressive drape was successful. The result of the progressive drape is shown in FIG. 139; only one quadrant was optimised to speed up optimisation.

While the results of the optimisation are not ideal in the sense that the patch is not fully covered, the general pattern of the yarn spacings was used as a starting point to perform the manual optimisation of a textile that covers a greater surface area. The results of two different manual optimisations are shown in FIG. 140 and FIG. 141.

The optimisations shown in FIG. 140 and in FIG. 141 were performed with a maximum value for yarn spacings of 5 mm and 4.5 mm, respectively. This was done to observe the impact of changing the range of allowable yarn spacings on the optimisation. The optimisation performed with a maximum value of 4.5 mm achieved a surface area of 806 cm² while the optimisation performed with a maximum value of 5 mm achieved a surface area of 850 cm², both exceeding the surface area of 674 cm² covered by the non-optimised textile. In addition to the increase in surface area, the optimisation enables the textile to drape around the corner of the mould across the entirety of the patch.

The optimised textile as seen when laid flat for manufacturing is shown in FIG. 142, the pattern used for manufacturing is shown in FIG. 143 and the manufactured textile based 180 on this optimisation can be seen in FIG. 144.

The third optimisation performed aims to modify the fibre orientation for a specific patch on the aerospace mould. In some cases, design requirements exist such as the ability to carry loads acting in a specific direction. The specified fibre orientation for the patch is not parallel to the initial orientation of the weft and warp yarns. Therefore, it is desirable to modify the fibre orientation within the textile.

The optimisation which provided the best result was performed using a progressive optimisation with a parameter to maximise developed especially for this optimisation scenario. The parameter that was maximised is the sum of the in-plane shear angle and the angle φ defined above. However, the value of the in-plane shear angle is set to 0 for drape elements within the patch to ensure that the modification of the fibre orientation of these drape elements is given absolute priority. Additionally, to ensure that the fibre orientation for sections of the textile not within the patch are not modified, the value of φ is set to 0 for drape element not within the patch.

While the fibre orientation of the section of the textile within the patch is not parallel to the specified fibre orientation, it is clear that the fibre orientation was modified. Should a load be applied along the specified orientation, the optimised variable-length textile would perform better than the non-optimised textiles as the fibres are in better alignment with the applied load. Additionally, the section of the textile not within the patch is largely unmodified, therefore the optimisation had minimal effect on in-plane shear angle and vf. Two textiles are manufactured. The patterns used to manufacture the two textiles are shown in FIG. 145 and FIG. 146.

Textile A and Textile B were stitched using a stitch line at every 4 and 5 yarns, respectively. Textile A is shown in FIG. 147 and Textile B is shown in FIG. 148.

Textile A, with a stitch line at every 4 yarns appears to have kept it's intended shape better than Textile B, with a stitch line at every 5 yarns. This may be attributed to the number of stitch lines, indication that more stitch lines are more effective at maintaining the shape of the textile.

In one embodiment, the present invention provides methods for designing, optimising and manufacturing textile performs used in the production of structural polymer-matrix composite (PMC) materials and parts, whereby the preform constitutes the integral reinforcement of the composite material and part. Reinforcement preforms are typically draped onto a mould and combined with a polymer resin supplied in liquid or film form; once combined and solidified these two constituents form a PMC part. Advantages of the performing technology of the present invention include: (1) The preforms are designed and optimised individually for specific PMC parts. (2) The preforms are manufactured as flat sheets to be draped onto moulds in PMC manufacturing processes. (3) Curved yarns are oriented along two selected and/or optimised directions at each point of a preform but these orientations typically vary over the surface of the flat preform, and they change further as the preform is draped onto the mould, aiming at improving coverage of mould surfaces by the dry preforms and structural performance of the PMC parts. (4) The preforms are designed and manufactured net-shape, reducing/removing the need for any tailoring and cutting of reinforcement fabrics. (5) The preforms are manufactured to required thickness, reducing/removing the need for laminating successive layers of reinforcement fabric.

The stiffness and strength of structural polymer-matrix composite parts stem from the use of strong and stiff reinforcement fibres (typically carbon, graphite or glass, with numerous other types of fibres available) assembled into a reinforcement preform, with the polymer matrix (typically epoxy, with numerous other types of thermoplastic, thermosetting and other polymers available) encapsulating the fibres and used primarily for positioning the fibres in the PMC parts, for protecting the fibres from the environment, and for transferring stresses from the environment to the fibres. Fibres with diameters ranging from about 5 μm to 15 μm are preferred for easy conformability of the reinforcement preforms to curved mould surfaces and effective reinforcing in PMC parts. Handling reinforcement fibres individually in PMC manufacturing operations is not practical, hence fibres are traditionally assembled into textiles of various types such as weaves, braids and others in separate textile manufacturing operations, before PMC manufacturing takes place. Initially, individual fibres are grouped into yarns of a few hundred to a few thousand fibres. Then, traditional textile processes tuned to high levels of control over dimensional accuracy, yarn tension and other manufacturing parameters are used for turning yarns into fabrics that can be handled easily in subsequent PMC manufacturing operations. These fabrics become the reinforcement in PMC parts.

Most traditional textile technologies typically produce textiles—such as weaves or braids—in a continuous form. Woven fabrics are produced in continuous sheets of set width sold as rolls. A typical woven reinforcement is much thinner than the thickness of a typical PMC part, hence such fabrics are usually referred to as thin (‘2D’) fabrics. Traditional textile reinforcements are not designed for specific PMC parts in terms of outline, thickness or orientations of fibres and yarns.

The shapes of PMC parts relevant to the performing technology according to one embodiment of the present invention fall into the general category typically labelled as shells: parts where one dimension—the thickness—is orders of magnitude smaller than other dimensions. Shells usually are not flat—they feature varying levels of curvature and are defined in the 3D space. An airfoil, the nose cone of an aircraft and a saddle shape are examples of shells. Shells are also defined by a contour or outline. Preparing the reinforcement for such shells typically involves cutting pieces of 2D fabric from a roll and laying them onto the curved surface of a mould. Many superimposed pieces of thin fabric are needed to reach a required part thickness—especially as dry fabrics undergo much compression normal to the shell surface during PMC manufacturing; hence PMC parts are often referred to as laminated: more layers are needed for thicker parts, and inversely. The operation of conforming textile pieces to the surface of a mould is called draping. A stack of superimposed layers of reinforcement fabric pieces draped into shape on a mould is often referred to as a preform. The outline of the individual pieces of fabric cut from the continuous roll of thin fabric should match the outline of the preform to be made as much as possible, so as to limit the number of pieces of fabrics needed to make up the preform. However, the outline of a flat piece of fabric differs from the outline of the same piece once it is draped on a mould and into the final preform, and the draping operation is very delicate because of the nature of textile reinforcements. Therefore, preform manufacturing remains highly manual—many unsuccessful attempts at automation were made—and time-consuming, and its outcome is very variable. Laser projection systems are often used to indicate to workers where and how a given piece of fabric should fall on the mould once draped. Cutting textiles to outlines leads to potential fraying and handling of single layers can result in some disassembling. Positioning layers on top of each other with precision is tremendously difficult. Traditionally this has precluded textile-based PMCs based on dry textile preforms—which are relatively economical—from entering aerospace markets, especially for primary load-bearing structures. The preforming technology according to one embodiment of the present invention removes the limitations and difficulties associated with building preforms from laminated pieces of thin fabric.

A typical 2D fabric is made from two sets of parallel and equidistant yarns (warp yarns and weft yarns in a weave, for example). In a piece of flat fabric coming off the roll these two sets of yarns are perpendicular. However, fabrics have the capability of undergoing large in-plane shear strains whereby the angle between the two sets of yarns changes upon draping, even though yarns within each set remain parallel and equidistant—the distance varies during in-plane shear when measured perpendicularly to the yarns. This can be visualised if a square is drawn on the fabric; as the fabric undergoes in-plane shear the square takes the aspect of a diamond, with the 4 sides maintaining a constant length. This capability for large and reversible strain shear strain is not found in materials such as sheet metal. Point 1 is important because a fabric made of stiff and virtually inextensible reinforcement fibres can be draped on a (doubly) curved surface only because it can undergo large in-plane shear strain. Hence this capability to undergo in-plane shear is essential, with the following 2 limitations: 1) there is a limit shear angle—typically labelled ‘locking angle’—beyond which a fabric will not shear but buckle—buckling of fabrics in preform is highly detrimental to PMC performance and should be avoided. Fabrics can shear more or less depending on construction; capability to undergo high shear strain is always desirable. 2) a fabric may be sheared in either of 2 directions away from the original 90° angle separating both sets of yarns; resistance to shear and locking angle may differ for both directions, depending on construction.

A fabric in any given state is characterised by its fibre volume fraction (vf). This value can change in different situations for a given fabric. It can also change from point to point in a piece of fabric and in a preform. The fibre volume fraction is the fraction of the volume circumscribing a fabric, or part of a fabric or preform, that is effectively occupied by fibres. For example, assuming a representative thickness for a sheet of fabric, a vf of 50% means that half of the volume within this thickness is occupied by fibres, the rest being occupied by air in a dry fabric and by resin in a composite. A high vf is highly beneficial for the specific structural properties of PMCs; however vf cannot reach 100%. Textiles can be compacted normal to their plane and this clearly increases vf. vf also increases upon shearing as the yarns get closer, but only if the thickness of the fabric stays constant. Usually thickness does not stay constant upon shearing, so there is no systematic structural advantage for the PMC part to having fabrics highly sheared upon draping.

Woven and braided fabrics are interlaced as yarns cross over each other during textile manufacturing; this is what holds yarns together for these textile manufacturing processes. But interlacing generally reduces the ability of fabrics to undergo in-plane shear, and it also reduces the primary structural properties of PMCs made from reinforcements featuring interlaced yarns. Other means of manufacturing 2D fabrics from two perpendicular sets of parallel yarns exist, where the yarns are held together by light stitch lines realised by processes including stitching, warp-knitting and others. In this document and much PMC literature such fabrics are termed non-crimp stitched (NCS) 2D fabrics.

Advantages of the preforming technology according to one embodiment the present invention include: (1) the ability to design, optimise and manufacture individual textile preforms for specific PMC parts of known shape and geometry, promoting easier PMC part manufacturing, higher preform consistency, and better PMC structural behaviour; (2) the ability to design, optimise and manufacture textile preforms as flat, drapable individual pieces of textile as opposed to cutting separate textile pieces from continuous textiles supplied in rolled form; (3) the ability to design, optimise and manufacture textile preforms as flat, drapable individual pieces of flat textile as opposed to preforms that are produced to the final configuration of the part in 3D, so that the same machinery may be used in all cases and preforms can be shipped easily; (4) the ability to design, optimise and manufacture textile preforms featuring two local yarn orientations that vary throughout the preform—both prior to and after draping on a mould, enhancing PMC manufacturing and structural performance; (5) the ability design, optimise and manufacture net-shape textile preforms, reducing/removing the need for cutting and assembling numerous textile pieces; and (6) the ability design, optimise and manufacture textile preforms to the required thickness, reducing/removing the need for laminating and superimposing numerous textile pieces.

Textile preforms manufactured using the technology according to one embodiment of the present invention are flat, hence typically they should undergo draping onto a curved mould defined in 3D. This way of manufacturing distinct, part-specific textile pieces enables at least three important technical features: (1) textile preforms can be built to the required final thickness in a single operation—the resulting thick textile preform is known as 2.5D (thick textile preform in this proposal); (2) textile preforms can be built to the required outline (flat) in a single operation—the resulting thick textile preform is known as net-shape (thick net-shape textile preform in this proposal); (3) there is no limitation whereby flat fabrics feature straight yarns only as yarn paths in the flat fabric (before draping) can be designed as curves defined for a specific PMC part. This enables highly valuable possibilities such as using yarn paths that are more favourable to in-plane shear of the fabric upon draping, or to impregnation of the preform by a resin in PMC manufacturing, or to the structural properties of the PMC part. Such textiles are referred to here as directional thick net-shape textile preforms. It should be noted that it is perfectly possible to make thick net-shape textile preforms featuring straight yarns, and that this might constitute an optimal solution in some cases. But the design manufacturing process defined herein allows yarn directionality. The architecture of the preforms according to one embodiment of the present invention is such that 2 yarn directions can be identified at any point of the fabric, that these directions are not necessarily perpendicular, and that they can vary from point to point in the fabric—both flat and draped.

One notable advantage of the preforming technology according to one embodiment of the present invention is the manufacturing of preforms as flat fabrics to be draped, as opposed to producing fabrics already to final part shape straight from the yarn. This promotes process versatility and simplicity. Whilst it may be possible to lay down individual yarns is space using an industrial robot or highly dedicated machinery, dry yarns laid on anything but horizontal surfaces do not stay in place and should be held using ancillary devices. The preforming technology according to one embodiment of the present invention uses simpler machinery that is versatile, and it produces flat preforms that are easier to wrap and ship. Another notable advantage of the preforming technology according to one embodiment of the present invention as opposed to existing technologies is that it removes most operations that induce variability and potential damage in preforms, namely the cutting, manual handling and manual draping of individual thin layers. Hence it does offer potential for improved consistency.

The architecture of the preforms according to one embodiment of the present invention is straightforward. Preforms consist of layers of superimposed no-crimp yarns assembled by a stitch. Simpler textile structures are available in thin (‘2D’) form and sold as continuous rolls featuring straight yarns only—such thin fabrics are generally recognised as superior to their woven counterparts and their use is widespread. However, the preforms according to one embodiment of the present invention are very different and superior in many aspects, including but not limited to: 1) the preforms are thick, 2) the preforms are net-shape, and 3) yarns in the preforms can be directional.

The core mathematical foundation of the technology is straightforward. The preforms defined herein are made by laying a number of layers of non-interlaced yarns. There are only two sets of yarn orientations defined, so there can be any number of layers but yarns in each layer should follow one of these two sets of orientations. Crucially, there is no need for yarns within each set to be straight (they always are in all mainstream 2D textile reinforcement manufacturing processes), parallel, or equidistant. Instead, orientations can be made to offer advantages such as increased drapability and mould coverage. This is illustrated as follows: whilst yarn paths in a regular 2D fabric—not sheared, before draping—appear as a regular orthogonal grid, yarn paths in preforms designed and manufactured using the technology according to one embodiment of the present invention—not sheared, prior to draping—appear as a distorted grid. In both cases the cells making up the grid necessarily have 4 sides, but whilst the cells are square in the first case they can take any shape in the second case. If, using software developed as part of the technology presented herein, the draping operation is known) to produce in-plane shear in a given area of the preform once draped, this preform will be manufactured with yarns in that given area having an opposite angle between then in the flat configuration, so that this opposite ‘reserve’ of shear strain is used upon draping before inducing further shear in the fabric, and therefore ultimately allowing more shear strain in the fabric upon draping, before buckling occurs.

Practically, this is done by using software developed as an integral part of the preforming technology presented herein, for designing the yarn paths, then manufacturing a (part-specific) needle base plate for guiding the physical deposition of yarns along the prescribed paths within the outline of the flat net-shape preform, then using manufacturing equipment (developed as an integral part of the preforming technology presented herein, not part-specific) to lay down the appropriate number of layers of yarns, and finally stitching the yarns following either one or both sets of yarn paths. This last point is essential to maintain the capability to undergo shear, hence the stitching pattern following the yarns paths is an integral component of the technology presented herein. Thick net-shape directional preforms can be shipped flat, and then draped in a single operation upon PMC manufacturing.

Concept of directional thick net-shape textile reinforcement preforms as fabrics made from continuous yarns of structural, stiff fibres as reinforcements for structural polymer-matrix composite materials (PMCs), that are made flat, to final thickness, to final net shape, that have directional yarns, and that can be sheared in-plane to accommodate draping onto mould surfaces that are defined in a 3D space and potentially feature double curvatures varying from point-to-point over the surface. The preforms as fabric pieces are produced as separate items of finite dimensions as opposed to continuous rolls. A preform is designed for a specific PMC part.

In one embodiment, the present invention provides a method for manufacturing the aforementioned directional thick net-shape reinforcement preforms.

In one embodiment, the present invention provides software for optimizing yarn paths in the flat directional thick net-shape reinforcement preforms, aiming at optimizing mould coverage, resin flow through fabric and/or stiffness of final PMC part.

FIGS. 149, 150, 151, 152, 153 and 154 show screenshots of the optimisation software according to one embodiment of the present invention. FIGS. 149 and 150 show a geometric model of a hemisphere imported into the software. FIG. 151 shows initial draping paths. FIG. 152 shows the predicted draped paths of yarns for a non-optimised fabric. FIG. 153 shows the shear angle for such fabric. FIG. 154 shows the predicted draped paths of yarns for an optimised fabric with directional yarns built into the preform design and realised through the use of the needle base plate. Only the needle base plate needs to be changed for marking series of preforms specific to a given composite parts; the remainder of the geometry and software can be used in all cases.

Software & Algorithm:

The main function of the software is to support preform design by enabling definition of optimised yarn paths. Algorithm implemented in the software is a novel variation of the classic fisher-net surface coverage used for simulating the draping of standard 2D orthogonal bidirectional fabrics. The classic fisher-net algorithm works as follows, where the simulation of the draping operation can be performed using geometric principles. A reinforcement fabric in the flat configuration is represented by a regular orthogonal grid as mentioned above, where grid lines follow yarn paths and the intersection between these lines correspond to yarn crossovers. The algorithm is based on five assumptions: (1) the fibres are inextensible, (2) fibre crossovers (or nodes) act as pin-joints with no relative slip, (3) fibre segments are straight between joints, (4) uniform contact is achieved between yarns and surface to be draped, and (5) fabric layers are infinitely thin.

The result is similar to a fishnet and can be solved as long as a start point and certain constraints including initial draping orientations are defined. The process of modeling the draping kinematically involves calculating the location of the crossover points of weft and warp yarns. The crossover points should lie on the surface of the mould to be draped, at the intersection of two spheres. The two spheres are centered on the constrained warp and weft yarns, at a distance equal to the yarn segment length from the start point along each yarn, hence the spheres have a radius equal to the yarn segment length. Subsequent crossover points are determined in succession based on previously determined cross-over points, in the same manner. It is possible to determine the location of any crossover point if and only if the location of the adjacent crossover points in the weft and warp direction are known. It is also possible to constrain the initial warp and weft yarns in different manners for the same start point and geometry, leading to different simulation results. Similarly, the start point may be changed while the angle between constrained yarns and the geometry remain identical, leading to drastically different results.

The constrained warp and weft yarns do not always follow easily determined straight lines; on complex geometries it is usual for the constrained yarns to behave as geodesics, defined as lines that follow non-slip paths on a curved surface. In order to fully simulate the entire draping process, including the manual operations done by a person, it is possible to perform simulations with geodesics that are further manipulated and modified.

Whilst initially designed for 2D woven fabrics the fisher-net algorithm has been shown to represent the behaviour of other types of 2D fabrics well. As it is draped, a thin 2D fabric supplied as a continuous roll goes from 2 sets on parallel and equidistant lines in the flat undraped state, to an ensemble of diamonds, the configuration of which is determined entirely by the shape of the part. In a fisher-net based simulation a part geometry is imported, then a starting point and orientations are selected for the draping, and the software calculate resulting yarn paths on the part as well as local shear angles. If a locking angle is specified the software stop coverage once this angle is reached. This capability was reprogrammed as a basis for further work pertaining to the technology according to one embodiment of the present invention.

The additional and unique capability that the software presented as part of the preforming technology according to one embodiment of the present invention offers in relation to the preforming technology is to optimise the distances between crossovers for increased drapability, by a mathematical process of trial and error with constant improvement. So, the software effectively designs yarn paths starting either from a regular grid, or from a first estimate provided by the user, and it shows improvements in covered area as well as resulting shear angles. Once optimisation has completed the software provides yarn paths in the flat state, so that a guiding plate can be manufactured on a CNC machine. This capability for optimising yarn paths in the draped state through modification of the crossover distance and change of yarn paths in the draped state, whilst checking that the shear angles are also compatible with manufacturing of the fabric in the non-draped state, and then providing these paths in the flat state for manufacturing directional fabrics, is unique to this technology to the best knowledge of the author.

One central characteristic of the preforming technology presented herein is the capability to custom-tailor the yarn paths towards a specific application and geometry. Benefits include a greater surface area covered by a single preform, less in-plane shear in the draped state, and fibre orientations that are potentially better aligned towards specific design requirements. The benefits are quantified through the use of a quantified parameter which needs to be maximised. The optimisation or improvement of the textile is achieved by varying the distance between adjacent yarns across the textile. The distance between adjacent yarns, referred to as the yarn spacing, is measured between the yarn crossovers. Changes to the yarn spacings can be made manually or by the software, using optimisation algorithms.

The manual optimisation of a textile reinforcement is accomplished by making changes to the yarn spacing array directly in the draping software, FIG. 109.

The draping software may be used to optimise a textile, relying on an algorithm based on the evolution strategy optimisation method. The textile is modified by changing the value of the yarn spacing at a single location on the draped textile, effectively altering the configuration of the yarn spacings of the textile. This location, as well as the magnitude of the change to the yarn spacing is based on a random number supplied by a pseudo-random number generator. The decision to keep or discard the modified configuration is based on the fitness levels of the original and modified configurations. The fitness level corresponds to the value of a parameter being maximised. Should the new, altered configuration result in an increase in the value of the parameter being maximised, the new configuration is kept and the original configuration discarded. Should the new configuration result in a decrease in the value of the parameter being maximised, the original configuration is kept and the new configuration is discarded. The decision to keep or discard the new configuration completes one iteration of the optimisation process, for which the algorithm is shown in FIG. 110

Several parameters are defined to ensure that optimisations are carried out efficiently and that their results lead to textiles that can be manufactured. The first parameters are the maximum and minimum allowable yarn spacings. As the yarn spacing is increased the space available to each yarn increases but this may reduce the fibre volume fraction. The value of the initial yarn spacing is dependent on the width of the yarn and should be correctly sized to allow for a constant-length textile manufactured using the initial yarn spacing to have a proper value for the fibre volume fraction.

The next parameter is the maximum amount of change to the value of the yarn spacing which can occur in one iteration. This prevents the optimisation from making large modifications and provides for a higher level of consistency in yarn spacings over the surface of the textile. Smaller changes to the configuration of the yarn spacings may slow down the optimisation process. However, the benefits greatly outweigh the loss in optimisation speed. An example of a textile optimisation attempted without limiting the amount of yarn spacing change per iteration. The textile clearly is non-uniform and would not be suitable for use in PMC component manufacture as many yarns are crimped, causing the fibre orientation of the textile to vary greatly.

Another parameter used to limit non-uniformity and abrupt changes in the draped variable-length textile is the minimum percentage of similarity required between the values of the yarn spacing of neighbouring yarn segments along the same fibre orientation. The yarn segments involved in the similarity check for the yarn spacings in the a direction can be seen in FIG. 112 where the size of the yarn spacing of the segment shown as a dotted line should be within a certain percentage from the size of the yarn spacings shown as dashed lines.

The value of the parameter for the minimum percentage of similarity should be below 100% as no variation in the yarn spacing would be permitted with a minimum similarity of 100%. Additionally, a value of say 95% for the minimum percentage of similarity for neighbouring yarn spacings means that a given yarn spacing should be within a range of 95% to 105% from the value of the neighbouring yarn spacings.

The parameters defined above may effectively limit the textile from becoming non uniform and unsuitable for use in PMC manufacture. However, they do not guarantee that the textile will necessarily be manufacturable flat. When optimising, it is possible to select whether or not the software will perform a verification at each iteration to determine which sections of the textile cannot be manufactured. While valid changes to the textile configuration may be discarded as a result of a possible reduction in the value of the parameter to maximise stemming from the loss of yarn crossovers, the verification ensures that the results of the optimisation process may be used in practice.

The final optimisation parameter is the steady state criterion ssc. This criterion is a threshold used for determining whether a given optimisation process has reached a steady state condition. Steady state checks only occur after the completion of a number of iterations Ni, the value of which is based on the amount of yarn crossovers Nm that can be successfully draped on the model. The value of Ni is the amount of iterations needed for the cumulative probability of each yarn spacing being selected for modification at least once to approach unity, and is determined using:

modification at least once to approach unity, and is determined using Equation 118:

$\begin{matrix} {N_{i} = {\sum\limits_{i = 1}^{2\; N_{m}}\; \frac{2\; N_{m}}{i}}} & (118) \end{matrix}$

where Nm is multiplied by two to account for yarn spacings in both fibre directions a and b. When sufficient iterations have been completed the steady state check is performed using Equation 119, shown above.

$\begin{matrix} {{ss}_{i} = {\frac{P_{i} - P_{avg}}{P_{i}} \cdot 100}} & (119) \end{matrix}$

where P_(i) is the current value of the parameter to maximise and P_(avg) is a moving average of the value P_(i) for the last N_(i) iterations. If ss_(i) is lower than the value of ss_(c) the optimisation process is stopped as it is considered to have reached a steady state condition; the user is notified of this by the GUI.

The software may optimise a given textile for one or a combination of many parameters including the surface area, in-plane shear angle, fibre volume fraction and fibre orientation. The value of the selected parameter is calculated for each drape element forming the mesh simulating the draping of a textile; the values can be summed or averaged depending on the selected parameter to maximise. A major motivator for the optimisation of textiles is covering a larger surface area with a single piece of textile. Therefore, the first parameter to maximise is the surface area covered by the draped textile. As the optimisation progresses, only new configurations which lead to a larger surface area are retained. While simple, this method often leads to unchecked growth in certain portions of the mesh, resulting in shapes such as seen in FIG. 114 where the textile has merely expanded to cover more area in the sections closer to the base of the hemisphere. It is important to note that optimisations which maximise the surface area are very dependent on the initial and maximum yarn spacings; if the initial and maximum yarn spacings are identical, the risk of having drape elements expand to cover a larger surface area is minimised or eliminated.

A textile reinforcement cannot be draped over a large area on complex surfaces due to limits in the amount of deformation, namely in-plane shear, which can be applied to that textile before out-of-plane deformation occurs. For this reason, it is possible to optimise the textile for minimising in-plane shear in the textile. The simplest method consists in maximising the sum of in-plane shear angles for the drape elements within the draped textile. Due to the convention used a high in-plane shear angle corresponds to low in-plane shear in the textile. Therefore, maximising the sum of in-plane shear angles leads to lower in-plane shear in the textile. It is important to note that additional drape elements will increase the value of the sum of in-plane shear angles; therefore, modifications which add new yarn crossovers are usually retained. However, optimisations done with in-plane shear as a parameter tend to limit the addition of new yarn crossovers and concentrate on minimising in-plane shear in existing portions of the mesh, as seen in FIG. 115.

It is also possible to optimise the textile to minimise the average in-plane shear angle, which is not affected by the amount of yarn crossovers in the textile.

To minimise the issues associated with using either the surface area or the in-plane shear angle as the sole parameter to maximise, a combined parameter was established where the product of in-plane shear and surface area is calculated for each drape element and summed over all the drape elements. Maximising the product of the surface area and in-plane shear angle offers a compromise between the two methods, as seen in FIG. 116.

A comparison of the parameters to maximise based on in-plane shear angle and surface area can be seen in Table 3, where five optimisations were performed for each parameter to maximise. The same model and identical parameters, except for the parameter to maximise, were used for the optimisations. The column describing the in-plane shear of the textile is based on visual inspection of the results.

It is also possible to use the fibre volume fraction in the parameter to maximise. In cases where a low variation of vf over the surface is desired, it is possible to minimise the standard deviation of vf across the textile. Alternatively it is possible to optimise a textile with the goal of achieving values of vf across the textile which lie between maximum and minimum values of vf. The parameter to maximise based on an allowable range of vf is given a value of 1 for the ideal vf, defined via the GUI, and a value of 0 for the maximum and minimum vf, also defined via the GUI. For other values of vf, the parameter to maximise is given a value based on linear interpolation between the ideal vf and either the maximum or minimum value for vf.

The final method of determining the parameter to maximise is based on fibre orientation. This optimisation is generally used in conjunction with a model that contains at least one patch for which a specific desired fibre orientation is defined, as seen in FIG. 118.

The parameter to maximise for drape elements within the patch is the value of the angle between the yarns and the specified fibre orientation. The specified fibre orientation is shown as a blue line in FIG. 118, defined using the GUI.

The software is capable of performing textile reinforcement optimisations following two different schemes. The optimisation may be performed over the entire surface of the simulated textile or it may be limited to a specific section which grows as the optimisation progresses. The schemes are referred to as static and progressive optimisation, respectively. In static optimisation, all of the yarn spacings between draped yarn crossovers are eligible to be modified at any given time, while in progressive optimisation only a portion of the simulated textile is draped and a only a portion of the yarn spacings between draped yarn crossovers can be modified. The initial section to be draped in a progressive optimisation is dependent on the initial size parameter, defined via the GUI. This parameter determines how many yarn crossovers can be draped along each geodesic. A non-optimised constant-length textile and the initial section of a progressive optimisation with an initial size of 5 can be seen on the left-hand side and the right-hand side of FIG. 119 respectively. For the example given only one quadrant is displayed; however, it is possible to perform a progressive optimisation on any number of quadrants.

The section of the textile for which changes to the yarn spacings are permitted is defined by the layer size, counted in yarn crossovers from the outermost draped yarn crossover. In the progressive optimisation shown in FIG. 120 the layer size is two, as shown by the two layers of yarn crossovers for which the yarn spacings have increased through optimisation to maximise the surface area.

The size of the section of the textile being draped grows by one layer when the initial section being optimised reaches steady state. The section of yarn spacings eligible to be modified is also modified when the portion of the textile grows. The layer size does not increase in terms of depth but moves along with the outer edge of the draped textile. The end result of the optimisation is shown in FIG. 121. The optimisation process ends when the final size of the draped textile is reached, defined via GUI along with the initial size parameter, or when the edge of the model or patch is reached. It is important to note that yarn spacings which were not eligible for modification in the initial section remain unchanged throughout the optimisation process.

To prevent sections of the textile from being locked at their original values, it is possible to set the layer size to a value equal to the initial size, or to define a layer size of zero which indicates that any yarn spacing between yarn crossovers that are currently draped are eligible for modification. To increase the speed of the progressive optimisation process, the yarn spacings of new layers added when the progressive optimisation reaches a steady state condition can be modified to match the values of the previous layer. This feature is optional and may be activated when defining the optimisation parameters.

The following paragraphs show embodiment and validation of the design aspect of the preforming technology presented herein. In this case the goal of the optimisation is to maximise the surface area covered by a single piece of textile on an hemisphere. The optimisation is performed on one quadrant of the hemisphere as all quadrants are identical; the configuration of yarn spacings found for one quadrant can be copied over to complete the hemisphere. The non-optimised constant-length textile with a yarn spacing of 4 mm leads to a draped surface of 91.0 cm² shown in FIG. 132, before reaching the maximum value of in-plane shear set at 60°.

Results for a progressive optimisation are shown in FIG. 133 with an area of 108.4 cm².

While a significant increase of 19% to the surface area was achieved, the progressive optimisation did not meet the objective of fully draping the hemisphere. A manual optimisation was performed with the goal of producing a textile that can drape lower along the hemisphere without reaching the maximum in-plane shear limit. The result of the manual optimisation is shown in FIG. 134, the surface area of which is 103.3 cm².

The surface area covered through manual optimisation is smaller than the surface area covered by the progressive optimisation; however, the lowest point draped on the manually optimised textile is lower than the lowest point draped on the textile resulting from the progressive optimisation. Depending on the situation, design and manufacturing options, either textile may be more desirable than the other. Once the optimisation was done, the manually optimised textile was manufactured. A pattern shown in FIG. 41 based on the optimised textile as it appears when laid flat as shown in FIG. 135, was used to align and stitch the textile.

The textile is manufactured by laying yarns between pins, shown in FIG. 137, that are placed at the location of the dots shown in FIG. 136.

The manufactured textile appears in FIG. 138 as draped over the hemisphere mould. It should be noted that the textile covers the hemisphere better than the non-optimised textiles did, proving the effectiveness of the optimisation process and demonstrating that variable-length textiles can in fact be manufactured in the flat state.

In one embodiment of the present invention, the machinery for making the preforms may as follows. 1) A needle base plate which is specific to the geometry of each series of PMC parts to be made. This is simply a plate of translucent polycarbonate in the current implementation, to reduce machining costs. Using polycarbonate also opens the possibility of manufacturing the holes by melting as opposed to machining—pending development of a melting head—which would reduce the plate fabrication costs significantly. The plate features many fixed needles inserted in to serve as guides for yarns, and also for stitching. Fixed needles are used for their simplicity and to reduce costs. 2) Bi-axial gantry, not part-specific, used for both laying yarns along prescribed patterns and stitching along yarn paths. This is a simple piece of equipment, not automated nor powered in the current prototype implementation. This should be powered and automated in production. 3) Lay-down head mountable on the gantry, not part-specific, used for laying down yarn. 4) Stitching head mountable on the gantry, not part-specific, used for stitching the preforms.

REFERENCES

The references listed below are referred to above and the entire contents and disclosures of these references are incorporated herein by reference.

-   1. Rudd, C. D. and A. C. Long, Liquid Moulding Technologies. 1997,     Nottingham: Woodhead Publishing Limited. -   2. Shoock, G., Reinforced Plastics for Commercial Composites Source     Book. 1986, Metals Park: ASM. -   3. Seemann Composites Inc. SCRIMP. 2010 [cited 2010; Available from:     http://seemanncomposites.com/scrimp.html. -   4. Quickstep Technologies Pty Ltd. How Quickstep Works. 2005 [cited     2010; Available from:     http://www.quickstep.com.au/what-is-quickstep/how-quickstep-works. -   5. Quickstep Technologies Pty Ltd. Quickstep Original. 2005 [cited     2010; Available from:     http://www.quickstep.com.au/patents-processes/quickstep-original. -   6. Long, A., EFACS Final Report. 2000, University of Nottingham. -   7. Bergsma, O. K. Computer Simulation of 3D forming processes of     fabric reinforced plastics. in International Committee on Composite     Materials 9. 1993. Madrid. -   8. Mack, C. and H. M. Taylor, The fitting of woven cloth to     surfaces. Journal of the Textile Institute, 1956. 57: p. 477-488. -   9. Robertson, R. E., E. S. Hsiue, E. N. Sickafus, and G. S. Y. Yeh,     Fibre Rearrangements During the Molding of Continuous Fibre     Composites. 1. Flat Cloth to a Hemisphere. Polymer Composites, 1981.     2(3): p. 126-131. -   10. Hancock, S. G. and K. D. Potter, The use of kinematic drape     modelling to inform the hand lay-up of complex composite components     using woven reinforcements. Composites Part A: Applied Science and     Manufacturing, 2006. 37(3): p. 413-422. -   11. Binkley, C. and S. B. Sharma. A Membrane Force Based Fabric     Drape Model With Rapid Convergence. in 8th International Conference     on Textile Composites. 2006. Nottingham. -   12. Boisse, P., M. Borr, K. Buet, and A. Cherouat, Finite element     simulations of textile composite forming including the biaxial     fabric behaviour Composites Part B: Engineering, 1997. 28(4): p.     453-464. -   13. Souter, B. J., A. C. Long, F. Robitaille, and C. D. Rudd.     Modelling the influence of reinforcement architecture on     formability. in 9th European Conference on Composite     Materials. 2000. Brighton. -   14. Callister, W. D., Materials Science And Engineering An     Introduction. 2003: John Wiley & Sons Inc. -   15. MatWeb. Material Property Data. 2010 [cited 2010; Available     from: http://www.matweb.com/index.aspx. -   16. Cai, Z. and T. G. Gutowski, 3-D Deformation of a Lubricated     Fiber Bundle. Journal of Composite Materials, 1992. 26(8): p.     1207-1237. -   17. Shigley, J. E., C. R. Mischke, and R. G. Budynas, Mechanical     Engineering Design. 2004, New York: McGraw-Hill. -   18. Bazergui, A., T. Bui-Quoc, A. Biron, G. McIntyre, and C.     Laberge, Résistance Des Matériaux. 2002, Montréal: Ecole     Polytechnique de Montréal. -   19. MatWeb. Cytec Thornel® P-1205 2K Carbon Fiber, Pitch Precursor     2010 [cited 2010; Available from:     http://www.matweb.com/search/DataSheet.aspx?MatGUID=26b06184b56b45ea9053     ae62c42cdff4. 191 -   20. Dostal, C. A., Engineered Materials Handbook: Composites, Volume     I 1987: CRC Press. -   21. Gutowski, T. G., Z. Cai, S. Bauer, D. Boucher, J. Kingery,     and S. Wineman, Consolidation Experiments for Laminate Composites.     Journal of Composite Materials, 1987. 21(7): p. 650-669. -   22. Lee, B., K. H. Leong, and I. Herszberg, Effect of Weaving on the     Tensile Properties of Carbon Fibre Tows and Woven Composites.     Journal of Reinforced Plastics and Composites, 2001. 20(8): p.     652-670. -   23. Taylor, D.S., The Determination of Contact between the     Constituents of Fibre Assemblies. Journal of the Textile     Institute, 1956. 47: p. 141-146. -   24. Potter, K. D., B. Khan, M. Wisnom, T. Bell, and J. Stevens,     Variability, fibre waviness and misalignment in the determination of     the properties of composite materials and structures Composites Part     A: Applied Science and Manufacturing, 2008. 39(9): p. 1343-1354. -   25. Dolatabadi, M. K. and R. Kovar. Contribution to Formulate     Bending Rigidity of Tensioned Yarn. in 9th International Conference     on Textile Composites. 2008. Newark. -   26. Ly, N. G., D. H. Tester, P. Buckenham, A. F. Roczniok, A. L.     Adriaansen, F. Scaysbrook, and S. D. Jong, Simple Instruments for     Quality Control by Finishers and Tailors. Textile Research     Journal, 1991. 61(7): p. 402-406. -   27. Minazio, P. G., FAST-Fabric Assurance by Simple Testing.     International Journal of Clothing Science and Technology, 1995.     7(23): p. 43-48. -   28. Yu, W. and Z. Du, Determination of the Bending Characteristic     Parameters of the Bending Evaluation System of Fabric and Yarn.     Textile Research Journal, 2006. 76(9): p. 702-711. -   29. Park, J. W. and A. G. Oh, Bending Rigidity of Yarns. Textile     Research Journal, 2006. 76(6): p. 478-485. -   30. {hacek over (S)}omodi, {hacek over (Z)}., 2., A. Hursa, and D.     Rogale, Numerical simulation of textile flexibility testing.     International Journal of Clothing Science and Technology, 2003.     15(3): p. 276-283. -   31. Robitaille, F. and R. Gauvin, Compaction of Textile     Reinforcements for Composites Manufacturing. III: Reorganization of     the Fiber Network. Polymer Composites, 1999. 20(1): p. 48-61. -   32. Harrison, P., M. J. Clifford, A. C. Long, and C. D. Rudd, A     constituent-based predictive approach to modelling the rheology of     viscous textile composites Composites Part A: Applied Science and     Manufacturing, 2004. 35(7-8): p. 915-931. -   33. Harrison, P., J. Wiggers, A. C. Long, and C. D. Rudd.     Constitutive Modelling Based on Meso and Micro Kinematics for Woven     and Stitched Dry Fabrics. in International Committee on     Composites 14. 2003. San Diego. -   34. Robitaille, F., MCG 4190 Selected topics I: Processing and     performance of polymers & composites: introduction. 2010, University     of Ottawa: Ottawa. p. 20-32. -   35. Du, G. W. and F. Ko, Analysis of multiaxial warp-knit preforms     for composite reinforcement. Composites Science and     Technology, 1996. 56(3): p. 253-260. -   36. Rudd, C. D., M. J. Owen, and V. Middleton, Mechanical properties     of weft knit glass fibre/polyester laminates Composites Science and     Technology, 1990. 39(3): p. 261-277. -   37. Sjögren, A., F. Edgren, and L. E. Aps. Effects of stitch pattern     on the mechanical properties of non-crimp fabric composites. in 11th     European conference on composite materials. 2004. Rhodes. 192 -   38. A&P Technology. Braid Basics. 2010 [cited 2010; Available from:     http://www.braider.com/?a=24&b=basics. -   39. Kruckenberg, T. M. and R. Paton, eds. Resin Transfer Moulding     for Aerospace Structures. 1998, Chapman & Hall: London. -   40. Pamuk, G. and F. Ceken, Manufacturing of weft-knitted fabric     reinforced composite materials: A review. Materials and     Manufacturing Processes, 2008. 23(7): p. 635-640. -   41. Chiu, C. H. and C. C. Cheng, Weaving method of 3D woven preforms     for advanced composite materials. Textile Research Journal, 2003.     73(1): p. 37-41. -   42. McIlhagger, R., J. P. Quinn, A. T. McIlhagger, S. Wilson, D.     Simpson, and W. Wenger, The influence of binder tow density on the     mechanical properties of spatially reinforced composites. Part     1—Impact resistance. Composites Part A: Applied Science and     Manufacturing, 2007. 38(3): p. 795-801. -   43. Wappat, K., HYBRIDMAT 4: Advances in the manufacture of 3-D     preform reinforcement for advanced structural composites in     aerospace—a mission to the USA. Report of a DTI global watch     mission, U. Department of Trade and Industry, Editor. 2006. -   44. Malkan, S. R. and F. K. Ko, Three-dimensionally braided preform     for a composite connecting rod. Concept development and     demonstration. Journal of Reinforced Plastics and Composites, 1991.     10(2): p. 167-183. -   45. Long, A. C., B. J. Souter, F. Robitaille, and C. D. Rudd,     Effects of fibre architecture on reinforcement fabric deformation.     Plastics, Rubber and Composites, 2002. 31(2): p. 87-97. -   46. Harrison, P., M. J. Clifford, and A. C. Long, Shear     characterisation of viscous woven textile composites: a comparison     between picture frame and bias extension experiments Composites     Science and Technology, 2003. 64(10-11): p. 1453-1465. -   47. Lin, H., M. J. Clifford, A. C. Long, and M. Sherburn, Finite     element modelling of fabric shear. Modelling and Simulation in     Materials Science and Engineering, 2009. 17(1). -   48. Prodromou, A. G. and J. Chen, On the relationship between shear     angle and wrinkling of textile composite preforms Composites Part A:     Applied Science and Manufacturing, 1997. 28(5): p. 491-503. -   49. Smith, P., C. D. Rudd, and A. C. Long, The effect of shear     deformation on the processing and mechanical properties of aligned     reinforcements Composites Science and Technology, 1996. 57(3): p.     327-344. -   50. Tsai, S. W. and H. T. Hahn, Introduction to Composite Materials.     1980, Lancaster: Technomic Publishing Company. -   51. Robitaille, F., B. R. Clayton, A. C. Long, B. J. Souter,     and C. D. Rudd, Geometric modelling of industrial preforms: woven     and braided textiles. Proceedings of the Institution of Mechanical     Engineers, Part L: Journal of Materials: Design and     Applications, 1999. 213(2): p. 69-83. -   52. Lomov, S. V., I. Verpoest, T. Peeters, D. Roose, and M. Zako,     Nesting in textile laminates: geometrical modelling of the laminate     Composites Science and Technology, 2003. 63(7): p. 993-1007. -   53. Samadi, R. and F. Robitaille, Monitoring local fiber volume     fraction in preform lap joints using Hall-effect sensors. Polymer     Composites, 2010. 31(2): p. 314-320. -   54. Steenkamer, D. A., D. J. Wilkins, and V. M. Karbhari, The     influence of preform joints on the processing of RTM composites.     Composites Manufacturing, 1995. 6(1): p. 23-24. 193 -   55. Estrada, G., C. Vieux-Pernon, and S. G. Advani, Experimental     Characterization of the Influence of Tackifier Material on Preform     Permeability. Journal of Composite Materials, 2002. 36(19): p.     2297-2310. -   56. Shih, C. H. and L. J. Lee, Tackification of Textile Fiber     Preforms in Resin Transfer Molding. Journal of Composite     Materials, 2001. 35(21): p. 1954-1981. -   57. Van West, B. P., R. B. Pipes, and M. Keefe, A Simulation of the     Draping of Bidirectional Fabrics over Arbitrary Surfaces. Journal of     the Textile Institute, 1990. 81(4): p. 448-460. -   58. Trochu, F., A. Hammami, and Y. Benoit, Prediction of fibre     orientation and net shape definition of complex composite parts     Composites Part A: Applied Science and Manufacturing, 1996.     27(4): p. 319-328. -   59. Metropolis, N. and S. Ulam, The Monte Carlo Method. Journal of     the Americain Statistical Association, 1949. 44(247): p. 335-341. -   60. Rechenberg, I., Evolution Strategy: Optimisation of Technical     Systems according to the Principles of Biological Evolution. 1973,     Stuttgart: Frommann-Holzboog. -   61. Metropolis, N., A. W. Rosenbluth, M. N. Rosenbluth, and A. H.     Teller, Equation of State Calculations by Fast Computing Machines.     The Journal of Chemical Physics, 1953. 21(6): p. 1087-1092. -   62. Kirkpatrick, S., C. D. Gelatt, and M. P. Vecchi, Optimization by     Simulated Annealing. Science, 1983. 220(4598): p. 671-680. -   63. Cormen, T. H., C. E. Leiserson, R. L. Rivest, and C. Stein,     Introduction to Algorithms. 2009: MIT Press. -   64. Khronos Group. OpenGL—The Industry Standard for High Performance     Graphics. 2007 [cited 2010; Available from: http://www.openg1.org/. -   65. Nokia Corporation. Qt—A cross platform application and UI     framework. 2010 [cited 2010; Available from: http://qt.nokia.com/. -   66. Microsoft. Microsoft Visual C++ 2005 Redistributable Package     (x86). 2010 [cited 2010; Available from:     http://www.microsoft.com/downloads/en/details.aspx?familyid=32bc1bee-a3f9-4c13-9c99-220b62a191ee&displaylang=en. -   67. Goldberg, D., What Every Computer Scientist Should Know About     Floating-Point Arithmetic ACM Computing Surveys, 1991. 23(1). -   68. Bourke, P. The Intersection of Two Planes. 2000 [cited 2010;     Available from:     http://local.wasp.uwa.edu.au/˜pbourke/geometry/planeplane/. -   69. Bourke, P. Intersection of a Line and a Sphere (or Circle). 1992     [cited 2010; Available from:     http://local.wasp.uwa.edu.au/˜pbourke/geometry/sphereline/. -   70. Weisstein, E. MathWorld—Heron's Formula. 2010 [cited 2010;     Available from: http://mathworld.wolfram.com/HeronsFormula.html. -   71. Cowan, J., Manufacturing Device, Method and Trials for Preforms     Made of Layered 2D Fabric Pieces. 2010, University of Ottawa.

72. Press, W. H., S. Teukolsky, W. Vetterling, and B. Flannery, Numeriacal Recipies: The Art of Scientific Computing. 2007: Cambrige University Press.

-   73. Rusinkiewicz, S. Estimating Curvatures and Their Derivatives on     Triangle Meshes. in Second International Symposium on 3D Data     Processing, Visualization and Transmission. 2009. Thessaloniki.

Many of the drawings and the description above are based on information that may be found in the Master of Applied Science in Mechanical Engineering Thesis of Nicholas Burnford entitled “Development of Drape Simulation Software and Optimisation of Variable-Length Textiles” submitted to the Faculty of Graduate and Postdoctoral Studies of the Ottawa-Carleton Institute for Mechanical and Aerospace Engineering at the University of Ottawa in January of 2011, and the entire contents and disclosure of this thesis is incorporated herein by reference.

While the present invention has been disclosed with references to certain embodiments, numerous modification, alterations, and changes to the described embodiments are possible without departing from the sphere and scope of the present invention, as defined in the appended claims. Accordingly, it is intended that the present invention not be limited to the described embodiments, but that it has the full scope defined by the language of the following claims, and equivalents thereof. 

What is claimed is:
 1. A method comprising the following step: (a) forming a textile preform for a mold having a complex curvature, wherein the preform is a single piece of textile material, and wherein the preform has an optimised pattern for one or more parameters.
 2. The method of claim 1, wherein step (a) comprises weaving the textile preform.
 3. The method of claim 1, wherein step (a) comprises knitting the textile preform.
 4. The method of claim 1, wherein step (a) comprises braiding the textile preform.
 5. The method of claim 1, wherein the method comprises the following step: (b) determining the optimised pattern for the one or more parameters using a Monte Carlo method. 